Pagini recente » Cod sursa (job #1587065) | Cod sursa (job #223429) | Cod sursa (job #2800513) | Cod sursa (job #2682094) | Cod sursa (job #1723991)
#include<cstdio>
#include<cstring>
#define MAXDIGITS 10000
using namespace std;
char s[MAXDIGITS];
int v[MAXDIGITS];
bool Check(int left,int right){
int i;
if(left>right)
return false;
memset(v,0,sizeof(v));
for(i=1;i<=right;i++)
v[i]=s[i]-'0';
if(left==1&&v[right]==0)
return false;
while(left<right){
if(v[left-1]>1)
return false;
if(v[left-1]==1)
v[left]+=10;
if(v[left]>=v[right]+10){
for(i=right-1;i>0;i--)
if(v[i]>0){
v[i]--;
break;
}
else
v[i]=9;
v[right]+=10;
}
if(v[left]<v[right])
return false;
if(v[right]==19)
return false;
v[left]-=v[right];
left++;
right--;
}
if(left==right)
if(v[left]%2==0&&v[left-1]<2)
return true;
else
return false;
else
if(v[right]==0)
return true;
else
return false;
}
int main(){
freopen("invers.in","r",stdin);
freopen("invers.out","w",stdout);
int tests,test,n;
scanf("%d",&tests);
for(test=1;test<=tests;test++){
scanf("%s",s+1);
n=strlen(s+1);
if(Check(1,n)==true||Check(2,n)==true)
printf("DA\n");
else
printf("NU\n");
}
return 0;
}