Cod sursa(job #29401)

Utilizator ionescu_bogdanIonescu Bogdan-Gabriel ionescu_bogdan Data 9 martie 2007 11:59:01
Problema Amlei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.86 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;
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)
    {
        for (i=0;i<n;i++)
        {
            for (j=0;j<t;j++)
                scanf("%d",a+j);
            memset(c[i],'1',n);
            for (j=0;j<t;j++)
            {
                semn=(a[j]>0?'2':'0');
                a[j]=(a[j]>0?a[j]:-a[j]);
                --a[j];
                if (c[i][a[j]]=='1')
                    c[i][a[j]]=semn;
                else
                    if (c[i][a[j]]!=semn)
                    {
                        memset(c[i],'3',n);
                        break;
                    }
            }
        }
        for (i=0;i<n;i++)
        {
            for (j=0;j<u;j++)
                scanf("%d",a+j);
            memset(d[i],'1',n);
            for (j=0;j<u;j++)
            {
                semn=(a[j]>0?'2':'0');
                a[j]=(a[j]>0?a[j]:-a[j]);
                --a[j];
                if (d[i][a[j]]=='1')
                    d[i][a[j]]=semn;
                else
                    if (d[i][a[j]]!=semn)
                    {
                        memset(d[i],'3',n);
                        break;
                    }
            }
        }
        qsort((void*)c,n,lmax,fc);
        qsort((void*)d,n,lmax,fc);
        nu=0;
        for (i=0;i<n;i++)
            if (strcmp(c[i],d[i])!=0)
            {
                nu=1;
                break;
            }
        if (nu)
            printf("NU\n");
        else
            printf("DA\n");
    }

    return 0;
}