Cod sursa(job #711701)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 12 martie 2012 17:57:12
Problema Amlei Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.94 kb
#include<cstdio>
#include<algorithm>
#define N 25001
using namespace std;
int a[N],b[N],n,t,u,i,j,l,c[51],e[501][51],d[501][51],r,x,y,k,o;
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(j=i;j<i+n;j++)
                   c[j-i+1]=a[j];
           sort(c+1,c+n+1);
           for(y=k=1;k<=l&&y;k++)
                   {for(r=0,j=1;j<=n&&y;j++)
                   if(d[k][j]==c[j])
                          r++;
                   if(r==n)
                          y=0;}
           if(y)
                   {l++;
                   for(j=1;j<=n;j++)        
                          d[l][j]=c[j];}}
     for(r=0,i=1;i<=n*u;i+=n)
           {for(j=i;j<i+n;j++)
                   c[j-i+1]=b[j];
           sort(c+1,c+n+1);
           for(y=k=1;k<=r&&y;k++)
                   {for(o=0,j=1;j<=n&&y;j++)
                   if(e[k][j]==c[j])
                          o++;
                   if(o==n)
                          y=0;}
           if(y)
                   {r++;
                   for(j=1;j<=n;j++)
                          e[r][j]=c[j];}}
     for(i=1;i<l;i++)
     for(j=i+1;j<=l;j++)
     for(t=1;t<=n;t++)
     if(d[i][t]>d[j][t])
           for(o=1;o<=n;o++)
                  x=d[i][o],d[i][o]=d[j][o],d[j][o]=x;                  
     for(i=1;i<r;i++)
     for(j=i+1;j<=r;j++)
     for(t=1;t<=n;t++)
     if(e[i][t]>e[j][t])
           for(o=1;o<=n;o++)
                  x=e[i][o],e[i][o]=e[j][o],e[j][o]=x;
     for(y=0,i=1;i<=l&&!y;i++)
     for(j=1;j<=r&&!y;j++)
     for(o=1;o<=n&&!y;o++)
     if(d[i][o]!=e[i][o])
           y=1;
     if(!y)
           fprintf(g,"DA\n");
     else
           fprintf(g,"NU\n");}
return 0;}