Mental Rotation

it2025-02-03  12

#include <bits/stdc++.h> using namespace std; char tu[1010][1010]; int main() { int n,l=0,r=0; string a; cin>>n>>a; for(int i =1;i<=n;i++){ for(int j =1;j<=n;j++){ cin>>tu[i][j]; } } for(int i =0;i<a.length();i++){ if(a[i] == 'R'){ r++; } else{ l++; } } r%=4;l%=4; if(r==l){ for(int i = 1;i <= n;i++){ for(int j = 1;j <= n;j++){ cout<<tu[i][j]; } cout<<endl; } return 0; } else if(r > l){ r = r-l; r = r%4; } else if(r < l){ l = l-r; r = 4 - l%4; } if(r==0){ for(int i =1;i<=n;i++){ for(int j =1;j<=n;j++){ cout<<tu[i][j]; } cout<<endl; } } else if(r==1){ for(int j = 1;j<=n;j++){ for(int i = n;i>=1;i--){ if(tu[i][j]=='>'){ cout<<'v'; } else if(tu[i][j]=='<'){ cout<<'^'; } else if(tu[i][j]=='v'){ cout<<'<'; } else if(tu[i][j]=='^'){ cout<<'>'; } else{ cout<<'.'; } } cout<<endl; } } else if(r==2){ for(int i = n;i>=1;i--){ for(int j = n;j>=1;j--){ if(tu[i][j]=='>'){ cout<<'<'; } else if(tu[i][j]=='<'){ cout<<'>'; } else if(tu[i][j]=='v'){ cout<<'^'; } else if(tu[i][j]=='^'){ cout<<'v'; } else{ cout<<'.'; } } cout<<endl; } } else if(r==3){ for(int j = n;j>=1;j--){ for(int i =1;i<=n;i++){ if(tu[i][j]=='>'){ cout<<'^'; } else if(tu[i][j]=='<'){ cout<<'v'; } else if(tu[i][j]=='v'){ cout<<'>'; } else if(tu[i][j]=='^'){ cout<<'<'; } else{ cout<<'.'; } } cout<<endl; } } return 0; }
最新回复(0)