Cod sursa(job #1724262)

Utilizator PopoviciRobertPopovici Robert PopoviciRobert Data 2 iulie 2016 17:18:39
Problema Amlei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <cstdio>
#define MAXT 500
FILE*fi,*fout;
long long v1[MAXT+1],v2[MAXT+1];
char a;
inline void blanc(){
   while(!(a>='0'&&a<='9')&&a!='-'&&a!=EOF)
     a=fgetc(fi);
}
inline int getnr(){
   int nr=0;
   int semn=1;
   if(a=='-'){
      semn=-1;
      a=fgetc(fi);
   }
   while(a>='0'&&a<='9'){
      nr=nr*10+a-'0';
      a=fgetc(fi);
   }
   blanc();
   return nr*semn;
}
int main(){
   int i,j,n,t,u,flag,k,x;
   fi=fopen("amlei.in" ,"r");
   fout=fopen("amlei.out" ,"w");
   a=fgetc(fi);
   while(a!=EOF){
       n=getnr();
       t=getnr();
       u=getnr();
       for(i=1;i<=t;i++){
         v1[i]=0;
         for(j=1;j<=n;j++){
           x=getnr();
           if(x>0)
             v1[i]+=(1LL<<x);
         }
       }
       for(i=1;i<=u;i++){
         v2[i]=0;
         for(j=1;j<=n;j++){
           x=getnr();
           if(x>0)
             v2[i]+=(1LL<<x);
        }
       }
       flag=1;
       for(i=1;i<=t&&flag==1;i++){
          j=1;
          flag=0;
          while(j<=u&&v1[i]!=v2[j])
            j++;
          if(j<=u)
             flag=1;
       }
       if(flag==1)
         fprintf(fout,"DA\n");
       else
         fprintf(fout,"NU\n");
   }
   fclose(fi);
   fclose(fout);
   return 0;
}