In this HackerEarth Rubik's Square problem solution Raj has bought a new Rubik's Cube and he try to solve it day and night. Seeing this , Vikas tried to help Raj by giving him problem based on cube Rotation . To make it easier for Raj , As Raj is a beginner Vikas gave problem in square matrix instead of cube. The problem is as follows :

Vikas has N*N array of different numbers. Now he rotates the rows and columns . Raj has to stay focused and tell Vikas what should be output of matrix after R Rows Rotation and C columns rotation.

Raj is now more confused then ever from the above problem. Help him to find the answer.


HackerEarth Rubik's Square problem solution


HackerEarth Rubik's Square problem solution.

using namespace std;

int main(){ // freopen("sampleinput.txt","r",stdin); // freopen("sampleoutput.txt","w",stdout); int n,rr,cc; cin>>n>>rr>>cc; int a[n][n]; for(int i=0;i>a[i][j]; } } int r[n],c[n]; memset(r,0,sizeof(r)); memset(c,0,sizeof(c));

for(int i=0;i<rr;i++){
    int t;
    cin>>t;
    r[t-1]++;
    r[t-1]=r[t-1]%n;
}

for(int i=0;i<cc;i++){
    int t;
    cin>>t;
    c[t-1]++;
    c[t-1]=c[t-1]%n;
}

int b[n][n];
//memset(b,0,sizeof(b)*n*n);

for(int i=0;i<n;i++){
    for(int j=0;j<n;j++){
        b[i][j]= a[i][(n-r[i]+j)%n] ; 
    }
}
for(int i=0;i<n;i++){
    for(int j=0;j<n;j++){
        a[i][j]= b[(n-c[j]+i)%n][j] ; 
    }
}

for(int i=0;i<n;i++){
    for(int j=0;j<n;j++){

        cout<<a[i][j]<<" ";
    }
    cout<<endl;
}
}