Cod sursa(job #1817512)

Utilizator maria15Maria Dinca maria15 Data 27 noiembrie 2016 22:53:50
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.97 kb
#include <fstream>

using namespace std;

int n, i, c, j, x;
int v[51][51], s[51][51], cop[51][51];

ifstream fin("cartele.in");
ofstream fout("cartele.out");

int comp(int a[][51], int b[][51], int n){
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            if(a[i][j]!=b[i][j])
                return 0;
    return 1;
}

void rot(int a[][51], int aux[][51], int n){
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            a[i][j]=aux[j][n-i+1];
}

void vers(int a[][51], int b[][51], int n){
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            a[n-i+1][j]=b[i][j];
}

int main(){
    fin>>n>>c;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++){
            fin>>s[i][j];
            //cop[i][j]=s[i][j];
        } /*
    vers(s, cop, n);
    for(c=1;c<=n;c++){
        for(j=1;j<=n;j++)
            fout<<s[c][j]<<" ";
        fout<<"\n";
    }
    fout<<"\n";
    for(i=1;i<=3;i++){
        rot(s, cop, n);
        for(c=1;c<=n;c++){
            for(j=1;j<=n;j++)
                fout<<s[c][j]<<" ";
            fout<<"\n";
        }
        fout<<"\n";
        for(c=1;c<=n;c++)
            for(j=1;j<=n;j++)
                cop[c][j]=s[c][j];
    }*/
    for(x=1;x<=c;x++){
        char ok=0;
        int cop[n+1][n+1];
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++){
                fin>>v[i][j];
                cop[i][j]=v[i][j];
            }


        if(comp(s, v, n)==1){
            fout<<"1\n";
            ok=1;
        }
        else
            for(i=1;i<=3;i++){
                rot(v, cop, n);
                if(comp(v, s, n)==1){
                    fout<<"1\n";
                    ok=1;
                    break;
                }
            }
        if(ok==0){
            vers(v, cop, n);
            for(i=1;i<=3;i++){
                rot(v, cop, n);
                if(comp(v, s, n)==1){
                    fout<<"1\n";
                    ok=1;
                    break;
                }
            }
        }
        if(ok==0)
            fout<<"0\n";
    }
    return 0;
}
/*
    for(x=1;x<=c;x++){
        char ok=0;
        int aux[n+1][n+1];
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++){
                fin>>v[i][j];
                cop[i][j]=v[i][j];
            }


        if(comp(s, v, n)==1){
            fout<<"1\n";
            ok=1;
        }
        else
            for(i=1;i<=3;i++){
                rot(v, cop, n);
                if(comp(v, s, n)==1){
                    fout<<"1\n";
                    ok=1;
                    break;
                }
            }
        if(ok==0){
            vers(v, cop, n);
            for(i=1;i<=3;i++){
                rot(v, cop, n);
                if(comp(v, s, n)==1){
                    fout<<"1\n";
                    ok=1;
                    break;
                }
            }
        }
        if(ok==0)
            fout<<"0\n";
    } */