classSolution{public:voidMoveStep(vector<vector<int>>&matrix,inti,intj,intn){intx1=i;inty1=j;intx2=y1;inty2=n-x1;intx3=n-x1;inty3=n-y1;intx4=n-y1;inty4=x1;inttmp=matrix[x4][y4];matrix[x4][y4]=matrix[x3][y3];matrix[x3][y3]=matrix[x2][y2];matrix[x2][y2]=matrix[x1][y1];matrix[x1][y1]=tmp;}voidrotate(vector<vector<int>>&matrix){// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
intlength=matrix.size();intn=length/2;if(length%2==0){for(inti=0;i<n;i++){for(intj=0;j<n;j++){MoveStep(matrix,i,j,length-1);}}}else{for(inti=0;i<n;i++){for(intj=0;j<=n;j++){MoveStep(matrix,i,j,length-1);}}}}};