Pagini recente » Cod sursa (job #3198871) | Cod sursa (job #447503) | Cod sursa (job #500803) | Cod sursa (job #2217216) | Cod sursa (job #1751927)
#include <iostream>
#include <cstdio>
#include <cstring>
#define MAXN 10050
using namespace std;
char s[MAXN];
int n, t[MAXN];
int solve(int cat)
{
int n = strlen(s)-1;
if (n < 0) return 0;
t[n] = t[0] = cat;
for (int i = n; i >= 0; i--) {
t[i-1] = s[n-i] - s[i] + t[i+1];
if (t[i-1] != 0 && t[i-1] != 1)
return 0;
if (n-i+1 >= i-1 && t[n-i+1] != t[i-1])
return 0;
if (n-i == i && (t[i]*10+(s[i]-0)-t[i-1]) % 2)
return 0;
t[n-i+1] = t[i-1];
}
return 1;
}
int main()
{
freopen("invers.in", "r", stdin);
freopen("invers.out", "w", stdout);
int t;
scanf("%d\n", &t);
while (t--) {
scanf("%s", s);
int rez = solve(0);
if (rez)
printf("DA\n");
else {
if (s[0] != '1')
printf("NU\n");
else {
for (int i = 0, t = strlen(s); i < t; i++)
s[i] = s[i+1];
printf(solve(1) ? "DA\n" : "NU\n");
}
}
}
return 0;
}