Mai intai trebuie sa te autentifici.
Cod sursa(job #21967)
Utilizator | 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;
}