Pagini recente » Cod sursa (job #531424) | Cod sursa (job #2880030) | Cod sursa (job #2926049) | Cod sursa (job #2523861) | Cod sursa (job #306651)
Cod sursa(job #306651)
#include<fstream.h>
void main()
{
ifstream f("cartele.in");
ofstream g("cartele.out");
int s[50][50],a[50][50],b[50][50], aux[50][50];
int n,c,i,j,pot;
f>>n>>c;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
f>>s[i][j]; // matricea sablon
int ok=1;
pot=0;
for(int k=1;k<=c;k++)
{
ok=1;
pot=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
f>>a[i][j];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(s[i][j]!=a[i][j]) ok=0;
if(ok==1) pot=1;
else{ ok=1;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
b[i][j]=a[j][n-i+1]; //intorc matricea la 90
aux[i][j]=a[j][n-i+1];
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(b[i][j]!=s[i][j]) ok=0; //verific cu sablonul
if(ok==1) pot=1;
ok=1;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
b[i][j]=aux[j][n-i+1]; //intorc matricea la,180
a[i][j]=aux[j][n-i+1];
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(b[i][j]!=s[i][j]) ok=0; //verific cu sablonul
if(ok==1) pot=1;
ok=1;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
b[i][j]=a[j][n-i+1]; //intorc pe rand matricea la 270
aux[i][j]=b[i][j];
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(b[i][j]!=s[i][j]) ok=0; //verific cu sablonul
if(ok==1) pot=1;
if(pot!=1) {
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=aux[j][n-i+1]; //intorc la loc matricea
ok=1;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
b[i][j]=a[n-i][n-j]; //intorc pe dos matricea
aux[i][j]=b[i][j];
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(s[i][j]!=b[i][j]) ok=0; //verific cu sablonul
if(ok==1) pot=1;
ok=1;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) //intorc matricea la 90 de grade
{
b[i][j]=aux[j][n-i+1];
a[i][j]=b[i][j];
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(b[i][j]!=s[i][j]) ok=0;
if(ok==1) pot=1;
ok=1;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) //intorc matricea la 180 de grade
{
b[i][j]=a[j][n-i+1];
aux[i][j]=b[i][j];
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(b[i][j]!=s[i][j]) ok=0;
if(ok==1) pot=1;
ok=1;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) //intorc matricea la 270 de grade
b[i][j]=aux[j][n-i+1];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(b[i][j]!=s[i][j]) ok=0;
if(ok==1) pot=1;
}
}
if(pot==1) { g<<" "<<1;
g<<"\n";
}
else { g<<" "<<0;
g<<"\n";
}
}
f.close();
g.close();
}