Cod sursa(job #18175)

Utilizator undogSavu Victor Gabriel undog Data 18 februarie 2007 10:21:25
Problema Amlei Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 2, Clasa a 9-a si gimnaziu Marime 2.26 kb
#include<stdio.h>
#include<stdlib.h>


int w,n,t,u,rez1,rez2,i,j,k;
int mat[500],fm1[1000],fm2[1000],aux1,aux2,ad;

int main(){

 FILE *in=fopen("amlei.in","rt"),*out=fopen("amlei.out","w+");

 while(!feof(in)){

  ad=0;
  fscanf(in,"%d%d%d",&n,&t,&u);

  for(i=0;i<n*t;i++)
   fscanf(in,"%d",&fm1[i]);
  for(i=0;i<n*u;i++)
   fscanf(in,"%d",&fm2[i]);

  rez1=1;rez2=1;aux1=0;aux2=0;
  for(i=0;i<n;i++)
   mat[i]=1;
  for(i=0;i<n*t;i++){
   for(j=0;j<n;j++){
    if(fm1[i++]<0)
     rez1=rez1&&!mat[(-1)*fm1[i]];
    else
     rez1=rez1&&mat[fm1[i]];

   }
  aux1=aux1||rez1;
  }
  for(i=0;i<n*t;i++){
   for(j=0;j<n;j++){
   if(fm2[i++]<0)
     rez2=rez2&&!mat[(-1)*fm2[i]];
    else
     rez2=rez2&&mat[fm2[i]];
   }
    aux2=aux2||rez2;
  }

   if(aux1==aux2)
    ad=1;

   rez1=0;rez2=0;aux1=0;aux2=0;
  for(i=0;i<n;i++)
   mat[i]=0;
  for(i=0;i<n*u;i++){
   for(j=0;j<n;j++){
    if(fm1[i++]<0)
     rez1=rez1&&!mat[(-1)*fm1[i]];
    else
     rez1=rez1&&mat[fm1[i]];
   }
  aux1=aux1||rez1;
  }

  for(i=0;i<n*t;i++){
   for(j=0;j<n;j++){
   if(fm2[i++]<0)
     rez2=rez2&&!mat[(-1)*fm2[i]];
    else
     rez2=rez2&&mat[fm2[i]];
   }
   aux2=aux2||rez2;
  }


   if(aux1!=aux2)
    ad=0;

   rez1=0;rez2=1;aux1=0;aux2=0;
  for(i=0;i<n-1;i++){
   mat[i]=0;
   mat[++i]=1;
  }
  for(i=0;i<n*u;i++){
   for(j=0;j<n;j++){
    if(fm1[i++]<0)
     rez1=rez1&&!mat[(-1)*fm1[i]];
    else
     rez1=rez1&&mat[fm1[i]];
   }
  aux1=aux1||rez1;
  }

  for(i=0;i<n*t;i++){
   for(j=0;j<n;j++){
   if(fm2[i++]<0)
     rez2=rez2&&!mat[(-1)*fm2[i]];
    else
     rez2=rez2&&mat[fm2[i]];
   }
   aux2=aux2||rez2;
  }


   if(aux1!=aux2)
    ad=0;

   rez1=rand()%2;rez2=rand()%2;aux1=0;aux2=0;
  for(i=0;i<n;i++)
   mat[i]=rand()%2;


  for(i=0;i<n*u;i++){
   for(j=0;j<n;j++){
    if(fm1[i++]<0)
     rez1=rez1&&!mat[(-1)*fm1[i]];
    else
     rez1=rez1&&mat[fm1[i]];
   }
  aux1=aux1||rez1;
  }

  for(i=0;i<n*t;i++){
   for(j=0;j<n;j++){
   if(fm2[i++]<0)
     rez2=rez2&&!mat[(-1)*fm2[i]];
    else
     rez2=rez2&&mat[fm2[i]];
   }
  aux2=aux2||rez2;
  }


   if(aux1!=aux2)
    ad=0;




 ad?fprintf(out,"DA\n"):fprintf(out,"NU\n");
 }
fclose(in);fclose(out);
return 0;
}