Cod sursa(job #711734)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 12 martie 2012 19:04:17
Problema Amlei Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.52 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int a[25001],b[25001],n,t,u,i,j,l,c[51],e[501][51],d[501][51],r,x,y,k,o,h[501],z[501],s;
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(i=1;i<=n*t;i++)
           fscanf(f,"%d",&a[i]);
     for(i=1;i<=n*u;i++)
           fscanf(f,"%d",&b[i]);
     if(feof(f))
           break;
     for(l=0,i=1;i<=n*t;i+=n)
           {for(s=0,j=i;j<i+n;j++)
                   c[j-i+1]=a[j],s+=a[j];
           sort(c+1,c+n+1);
           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];}
     for(r=0,i=1;i<=n*u;i+=n)
           {for(s=0,j=i;j<i+n;j++)
                   c[j-i+1]=b[j],s+=b[j];
           sort(c+1,c+n+1);
           for(y=k=1;k<=r&&y;k++)
           if(s==h[k])
                   {for(o=j=1;j<=n;j++)
                   if(e[k][j]!=c[j])
                          o=0;
                   if(o)
                          y=0;}
           if(y)
                   for(h[++r]=s,j=1;j<=n;j++)
                          e[r][j]=c[j];}
     sort(z+1,z+l+1),sort(h+1,h+r+1);
     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;}