Cod sursa(job #249605)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 28 ianuarie 2009 20:36:53
Problema Invers Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 2.26 kb
#include <stdio.h>
#include <string.h>

int N,i,s,d,T,ok,j;
char v[10010];

int main()
{
    freopen("invers.in","r",stdin);
    freopen("invers.out","w",stdout);
    scanf("%d",&T);
    while(T--)
          {
              scanf("%s", v+1);
              N=strlen(v+1);
              for (i=1;i<=N;++i)
                    v[i]=v[i]-'0';
              ok=0;
              i=1;
              if (v[1]==1 && N==1)
                  printf("NU\n");
                  else
              if (v[1]<v[2] && N==2)
                   printf("NU\n");
                   else
                   {
              while (!ok)
                     {
                        s=i;
                        d=N-i+1;
                        //cazul 1 
                        if (v[s]==v[d])
                             {
                                ok=1;
                             }
                         //cazul 2    
                            else
                         if (v[s]==v[d]+1)
                             {
                                v[s]=0;
                                v[d]=0;
                                v[s+1]+=10;
                            } 
                         //cazul 3
                         else
                         if (v[s]==v[d]+10)
                             {
                                v[s]=0;
                                v[d]=0;
                                v[d-1]--;
                               if (v[d]==9 && v[d]==19)
                                   {
                                        ok=0;
                                    } 
                            }   
                         //cazul 4
                         else
                         if (v[s]-v[d]==0 || v[s]-v[d]==1 || v[s]-v[d]==10 || v[s]-v[d]==11)
                             {
                                 ok=0;
                             }
                             i++;
                         }
                   if (ok) printf("DA\n");
                       else printf("NU\n");   
                    }   
        }
   return 0;
}