Cod sursa(job #19517)

Utilizator georgianaGane Andreea georgiana Data 19 februarie 2007 18:23:31
Problema Amlei Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.35 kb
#include <stdio.h>

int m,n[2],k[2],x;
short int a[2][501][51],nou[51];

int comp(int q1,int x1,int q2,int x2)
{
   int i=0;
   while (i<m && a[q1][x1][i]==a[q2][x2][i]) i++;
   if (i>=m) return 0;
   if (a[q1][x1][i]<a[q2][x2][i]) return -1;
   return 1;
}

int main()
{
   freopen("amlei.in","r",stdin);
   freopen("amlei.out","w",stdout);

   while(scanf("%d %d %d",&m,&k[0],&k[1])==3)
     {
        for (int q=0;q<=1;q++)
           {
              n[q]=0;
              for (int i=0;i<k[q];i++)
                 {
                    for (int j=0;j<m;j++)
                       {
                          scanf("%d",&x);
                          if (x>=0) a[q][n[q]][x-1]=1;
                          else a[q][n[q]][-x-1]=0;
                       }
                    char fo=0;
                    for (int j=0;j<n[q] && !fo;j++)
                       if (comp(q,j,q,n[q])==0) fo=1;
                    if (!fo) n[q]++;
                 }
           }
        char ok=1;
        if (n[0]!=n[1]) ok=0;
        for (int i=0;i<n[0] && ok;i++)
           {
              char f=0;
              for (int j=0;j<n[1] && !f;j++)
                 if (comp(0,i,1,j)==0) f=1;
              if (!f) ok=0;
           }
        if (ok) printf("DA\n");
        else printf("NU\n");
     }

   fclose(stdout);
   return 0;
}