Pagini recente » Cod sursa (job #2623234) | Cod sursa (job #2656480) | Cod sursa (job #525486) | Cod sursa (job #1400795) | Cod sursa (job #345587)
Cod sursa(job #345587)
#include <stdio.h>
#define Nmax 10005
int n,t,s,d;
int v[Nmax];
char c;
void scad(int i){
if(v[i] > 0 ) v[i]--;
else v[i]=9, scad(i-1);
}
int merge(int x,int y){
int s=x,d=y;
while( ! ( s==d || d==s+1 ) ){
if(v[s] == v[d]) ; else
if(v[s] == v[d]+1) v[s+1]+=10; else
if(v[s] == v[d]+10) scad(d-1); else // v[d-1]--;
if(v[s] == v[d]+11) v[s+1]+=10, scad(d-1);
else return 0;
s++; d--;
}
if(s == d) if((v[s] & 1) == 0) return 1; else return 0;
if( v[s] == v[d] || v[s]==v[d]+11 ) return 1;
return 0;
}
int bun(){
if( merge(1,n) ) return 1;
v[2]+=10; // dc prima cifra e un 1 obtinut prin transport
if( merge(2,n) ) return 1;
return 0;
}
int main(){
freopen("invers.in","r",stdin);
freopen("invers.out","w",stdout);
scanf("%d\n",&t);
for(; t; t--){
for(n=0,scanf("%c",&c); c!='\n' && !feof(stdin); scanf("%c",&c))
v[++n]=c-'0';
if( bun() ) printf("DA\n");
else printf("NU\n");
}
fclose(stdin); fclose(stdout);
return 0;
}