Cod sursa(job #21966)

Utilizator anamaria1Ozorchevici Ana Maria anamaria1 Data 25 februarie 2007 12:00:22
Problema Amlei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.77 kb
#include<fstream.h>
#define dim1 51
#define dim2 501
struct amlei
 {int v[dim1];
 };
amlei vt[dim2],vu[dim2];
int k,n;
int a[dim1];
void poz(int li,int ls,int &k)
{int i=li,j=ls,i1=0,j1=-1,c;
while(i<j)
 {if(a[i]>a[j])
   {c=a[i];a[i]=a[j];a[j]=c;
    c=i1;i1=-j1;j1=-c;
   }
  i=i+i1;j=j+j1;
 }
k=i;
}
void quick(int li,int ls)
{if(li<ls)
  {poz(li,ls,k);
   quick(li,k-1);
   quick(k+1,ls);
  }
}
void poz2(int li,int ls,int &k,amlei vec[dim2])
{int i=li,j=ls,i1=0,j1=-1,c,q;
amlei aux;
while(i<j)
 {for(q=1;q<=n;q++)
   if(vec[i].v[q]>vec[j].v[q])
     {aux=vec[i];vec[i]=vec[j];vec[j]=aux;
      c=i1;i1=-j1;j1=-c;
     }
  i=i+i1;j=j+j1;
 }
k=i;
}
void quick2(int li,int ls,amlei vec[dim2])
{if(li<ls)
  {poz2(li,ls,k,vec);
   quick2(li,k-1,vec);
   quick2(k+1,ls,vec);
  }
}
int main()
{ifstream f("amlei.in");
ofstream g("amlei.out");
int t,u,ct,cu,i,j,ok;
while(f>>n>>t>>u)
{ct=0;
for(i=1;i<=t;i++)
 {for(j=1;j<=n;j++) f>>a[j];
  quick(1,n);
  for(j=1;j<=ct;j++)
   {k=0;ok=0;
    for(k=1;k<=n;k++)
      if((a[k]>vt[j].v[k])||(a[k]>vt[j].v[k])) {ok=1;break;}
    if(!ok) break;
   }
  if(ok){ct++;for(j=1;j<=n;j++)vt[ct].v[j]=a[j];}
 }
t=ct;
cu=0;
for(i=1;i<=u;i++)
 {for(j=1;j<=n;j++) f>>a[j];
  quick(1,n);
  for(j=1;j<=cu;j++)
   {k=0;ok=0;
    for(k=1;k<=n;k++)
      if((a[k]>vu[j].v[k])||(a[k]>vu[j].v[k])) {ok=1;break;}
    if(!ok) break;
   }
  if(ok){cu++;for(j=1;j<=n;j++)vu[cu].v[j]=a[j];}
 }
u=cu;
if(u!=t) g<<"NU"<<'\n';
 else
  {quick2(1,t,vt);quick2(1,u,vu);
   ok=1;
   for(i=1;i<=t;i++)
    {for(j=1;j<=n;j++)
      if((vt[i].v[j]>vu[i].v[j])||(vt[i].v[j]<vu[i].v[j])) {ok=0;break;}
     if(!ok) break;
    }
   if(ok) g<<"DA"<<'\n';
    else g<<"NU"<<'\n';
  }
}
f.close();
g.close();
return 0;
}