Pagini recente » Cod sursa (job #1228130) | Cod sursa (job #3003091) | Cod sursa (job #264578) | Cod sursa (job #1171315) | Cod sursa (job #1769374)
#include <bits/stdc++.h>
using namespace std;
ifstream f("invers.in");
ofstream g("invers.out");
char s[10002];
int v[10002];
bool Check(int x,int y){
int i;
if(x>y) return 0;
memset(v,0,sizeof v);
for(i=1;i<=y;i++) v[i]=s[i]-'0';
if(x==1&&!v[y]) return 0;
while(x<y){
if(v[x-1]>1) return 0;
if(v[x-1]==1) v[x]+=10;
if(v[x]>=v[y]+10){
for(i=y-1;i>0;i--)
if(v[i]>0){
v[i]--;
break;
}
else v[i]=9;
v[y]+=10;
}
if(v[x]<v[y]||v[y]==19) return 0;
v[x]-=v[y];
x++;
y--;
}
if(x==y) return (!(v[x]&1)&&v[x-1]<2);
else return !v[y];
}
int main(){
int t,n;
f>>t;
while(t--){
f>>(s+1);
n=strlen(s+1);
if(Check(1,n)||Check(2,n)) g<<"DA\n";
else g<<"NU\n";
}
return 0;
}