Cod sursa(job #29467)

Utilizator ionescu_bogdanIonescu Bogdan-Gabriel ionescu_bogdan Data 9 martie 2007 14:23:31
Problema Amlei Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.79 kb
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define nmax 64
#define lmax 512

int n,t,u,i,j,a[lmax],nu,tt,uu;
char semn;
char c[nmax][lmax],d[nmax][lmax];

int fc(const void *x,const void *y)
{
    return strcmp((char*)x,(char*)y);
}

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

    while (scanf("%d%d%d",&n,&t,&u)==3)
    {
        memset(c,0,sizeof(c));
        memset(d,0,sizeof(d));
        for (i=0;i<t;i++)
        {
            for (j=0;j<n;j++)
                scanf("%d",a+j);
            memset(c[i],'1',n);
            for (j=0;j<n;j++)
            {
                semn=(a[j]>0?'2':'0');
                a[j]=(a[j]>0?a[j]:-a[j]);
                --a[j];
                c[i][a[j]]=semn;
            }
        }
        for (i=0;i<u;i++)
        {
            for (j=0;j<n;j++)
                scanf("%d",a+j);
            memset(d[i],'1',n);
            for (j=0;j<n;j++)
            {
                semn=(a[j]>0?'2':'0');
                a[j]=(a[j]>0?a[j]:-a[j]);
                --a[j];
                d[i][a[j]]=semn;
            }
        }
        qsort((void*)c,t,lmax,fc);
        qsort((void*)d,u,lmax,fc);
        tt=t,uu=u;
        for (i=0;i<t-1;i++)
            if (strcmp(c[i],c[i+1])==0)
                c[i][0]=255,--tt;
        for (i=0;i<u-1;i++)
            if (strcmp(d[i],d[i+1])==0)
                d[i][0]=255,--uu;
        qsort((void*)c,t,lmax,fc);
        qsort((void*)d,u,lmax,fc);
        nu=0;
        for (i=0;(i<tt)||(i<uu);i++)
            if (strcmp(c[i],d[i])!=0)
            {
                nu=1;
                break;
            }
        if (nu)
            printf("NU\n");
        else
            printf("DA\n");
    }

    return 0;
}