Thứ Năm, 10 tháng 1, 2019

UVa 11221 - Magic Square Palindrome * (We deal with a matrix)

Link:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=2162
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

Bài G - Educatioal Round 62

Đề bài: Bạn được cho 1 đồ thị vô hướng đặc biệt. Nó bao gồm $2n$ đỉnh được đánh số từ 1 đến 2n. Dưới đây là một số đặc tính của đồ thị: + ...