Sol:
| #include <cstdio> | |
| #include <stack> | |
| #include <cctype> | |
| #include <cmath> | |
| using namespace std; | |
| char s[50000]; | |
| int main() { | |
| int TC, count = 0; | |
| scanf("%d", &TC); | |
| getc(stdin); | |
| while (TC--) { | |
| count++; | |
| char c = ' '; | |
| int n = 0; | |
| while (scanf("%c", &c), c != '\n') { | |
| if (isalpha(c)) { | |
| s[n++] = c; | |
| } | |
| } | |
| s[n] = '\0'; | |
| bool palin = true; | |
| if ((sqrt(n) - (int) sqrt(n)) > 0) | |
| palin = false; | |
| if (palin) { | |
| stack<char> checker; | |
| int i; | |
| for (i = 0; i < n / 2; i++) { | |
| checker.push(s[i]); | |
| } | |
| if (n % 2 == 1) | |
| checker.push(s[i]); | |
| for (; i < n; i++) { | |
| if (checker.top() != s[i]) { | |
| palin = false; | |
| break; | |
| } | |
| checker.pop(); | |
| } | |
| } | |
| printf("Case #%d:\n", count); | |
| if (palin) | |
| printf("%d\n", (int) sqrt(n)); | |
| else | |
| printf("No magic :(\n"); | |
| } | |
| return 0; | |
| } |
Không có nhận xét nào:
Đăng nhận xét