Pagini recente » Cod sursa (job #1771945) | Cod sursa (job #3246858) | Cod sursa (job #539524) | Cod sursa (job #2438516) | Cod sursa (job #27161)
Cod sursa(job #27161)
#include <fstream>
using namespace std;
ifstream f1("amlei.in");
ofstream f2("amlei.out");
//ofstream f3("ver.out");
int abs2(int a)
{
if (a<0) return (-a);
return a;
}
long long pow2(int a, int b)
{
int i, aux;
//long long aux;
aux=1;
for (i=1; i<=b; i++)
aux*=a;
return aux;
}
int main()
{
int e1[600][61], i, j, e2[601][51], aux, n, u, t;
int vecfin1[601], vecfin2[601];
long long vec1[501], vec2[501];
int aux1, aux2;
bool stop;
f1>>n;
while (!f1.eof())
{
f1>>t>>u;
vec1[0]=-1; vec2[0]=-1;
for (i=1; i<=t; i++)
{
for (j=1; j<=n; j++)
{
f1>>aux;
e1[i][abs2(aux)]=(aux/abs2(aux)+1)/2;
}
//for (j=1; j<=n; j++)
// f3<<e1[i][j];
//f3<<endl;
}
//f3<<endl;
for (i=1; i<=u; i++)
{
for (j=1; j<=n; j++)
{
f1>>aux;
e2[i][abs2(aux)]=(aux/abs2(aux)+1)/2;
}
//for (j=1; j<=n; j++)
// f3<<e2[i][j];
//f3<<endl;
}
//f3<<endl;
for (i=1; i<=t; i++)
{
vec1[i]=0;
for (j=1; j<=n; j++)
{
vec1[i]+=e1[i][j]*pow2(2,n-j);
// f3<<n-j;
}
// f3<<vec1[i]<<endl;
}
//f3<<endl;
for (i=1; i<=u; i++)
{
vec2[i]=0;
for (j=1; j<=n; j++)
{
vec2[i]+=e2[i][j]*pow2(2,n-j);
//f3<<e2[i][j];
}
//f3<<vec2[i]<<" ";
}
stop=false;
while(!stop)
{
stop=true;
for (i=1; i<=t-1; i++)
if (vec1[i]>vec1[i+1])
{
stop=false;
aux=vec1[i];
vec1[i]=vec1[i+1];
vec1[i+1]=aux;
}
}
stop=false;
while(!stop)
{
stop=true;
for (i=1; i<=u-1; i++)
if (vec2[i]>vec2[i+1])
{
stop=false;
aux=vec2[i];
vec2[i]=vec2[i+1];
vec2[i+1]=aux;
}
}
aux1=0;
for (i=1; i<=t; i++)
if (vec1[i]!=vec1[i-1])
{
aux1+=1;
vecfin1[aux1]=vec1[i];
}
aux2=0;
for (i=1; i<=u; i++)
if (vec2[i]!=vec2[i-1])
{
aux2+=1;
vecfin2[aux2]=vec2[i];
}
if (aux1!=aux2) f2<<"NU"<<endl;
else
{
stop=true;
for (i=1; i<=aux1; i++)
if (vecfin1[i]!=vecfin2[i])
{
f2<<"NU"<<endl;
stop=false;
break;
}
if (stop==true) f2<<"DA"<<endl;
}
f1>>n;
}
f1.close();
f2.close();
return 0;
}