Cod sursa(job #13008)

Utilizator raula_sanChis Raoul raula_san Data 5 februarie 2007 13:43:28
Problema Invers Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.12 kb
#include<cstdio>
#include<cstring>

#define dim 10005

int N, M;
char s[dim]; int v[dim];

int main()
{
    freopen("invers.in", "r", stdin);
    freopen("invers.out", "w", stdout);
    
    scanf("%d\n", &N);

	int i, j, c, st, dr, ok;
    for(i=1; i<=N; ++i)
    {
             gets(s);
			 M = strlen(s); ok = 1;
             
             for(j=0; j<M; ++j)
                      v[j+1] = (int)s[j]-'0';
             
             if(M&1 && v[(M/2)+1]&1)
                    printf("NU\n");
             else
             {
				 for(j=1; j<=(M>>1); ++j)
				 {
                          st = j; dr = M-j+1;

                          if(st == dr+1)
                                if(v[st] == v[dr] || v[st] == v[dr]+11)
                                         printf("DA\n");
                                else
                                    printf("NU\n");
                          
                          else
                          {
                          
                          if(v[st] == v[dr]) continue;
                          else
                          {
                              if(v[st] == v[dr]+1)
                              {
                                       v[st+1] += 10;
                                       continue;
                              }
                              if(v[st] == v[dr]+10 && v[st]!=19)
                              {
                                       v[dr-1] = !v[dr-1] ? 9 : v[dr-1]-1;
                                       continue;
                              }
                              if(v[st] == v[dr]+11)
                              {
                                       v[st+1] += 10;
                                       v[dr-1] = !v[dr-1] ? 9 : v[dr-1]-1;
                              }
							  printf("NU\n");
							  ok = 0;
                              break;
                          }
                          }
                 }
				 if(ok)
                      printf("DA\n");
             }
    }
    
    fclose(stdin); fclose(stdout);
    return 0;
}