Cod sursa(job #712245)
Utilizator | Data | 13 martie 2012 10:49:56 | |
---|---|---|---|
Problema | Amlei | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 2.29 kb |
#include<cstdio>
int a,n,t,u,i,j,l,c[51],e[501][51],d[501][51],r,x,y,k,o,h[501],z[501],s,v[105],p,w[1300];
int main()
{FILE *f=fopen("amlei.in","r"),*g=fopen("amlei.out","w");
while(!feof(f))
{fscanf(f,"%d%d%d",&n,&t,&u);
for(s=l=0,o=i=1;o<=t;i++)
{fscanf(f,"%d",&c[i]),s+=c[i];
if(i%n==0)
{for(j=1;j<=n;j++)
v[n+c[j]]++;
for(p=j=0;j<=2*n;j++)
{for(k=0;k<v[j];k++)
c[++p]=j-n;
v[j]=0;}
for(y=k=1;k<=l&&y;k++)
if(s==z[k])
{for(r=j=1;j<=n;j++)
if(d[k][j]!=c[j])
r=0;
if(r)
y=0;}
if(y)
for(z[++l]=s,j=1;j<=n;j++)
d[l][j]=c[j];
o++,s=i=0;}}
for(s=r=0,o=i=1;o<=u;i++)
{fscanf(f,"%d",&c[i]),s+=c[i];
if(i%n==0)
{for(j=1;j<=n;j++)
v[n+c[j]]++;
for(p=j=0;j<=2*n;j++)
{for(k=0;k<v[j];k++)
c[++p]=j-n;
v[j]=0;}
for(y=k=1;k<=r&&y;k++)
if(s==h[k])
{for(a=j=1;j<=n&&a;j++)
if(e[k][j]!=c[j])
a=0;
if(a)
y=0;}
if(y)
for(h[++r]=s,j=1;j<=n;j++)
e[r][j]=c[j];
o++,s=i=0;}}
if(feof(f))
break;
for(j=1;j<=l;j++)
w[n*(n+1)/2+z[j]]++;
for(p=j=0;j<=n*(n+1);j++)
{for(k=0;k<w[j];k++)
z[++p]=j-n*(n+1)/2;
w[j]=0;}
for(j=1;j<=r;j++)
w[n*(n+1)/2+h[j]]++;
for(p=j=0;j<=n*(n+1);j++)
{for(k=0;k<w[j];k++)
h[++p]=j-n*(n+1)/2;
w[j]=0;}
for(y=i=1;(i<=l||i<=r)&&y;i++)
if(h[i]!=z[i])
y=0;
fprintf(g,"%s\n",y?"DA":"NU");}
return 0;}