//矩阵重塑(其二)
#include<iostream>
using namespace std;
int main(){int n,m,t;cin>>n>>m>>t;int c[10000][10000];int s=0,sum=0;int d[10000],k[100000];for(int i=0;i<n;i++){for(int j=0;j<m;j++){cin>>c[i][j];d[s]=c[i][j];s++;}}while(t>0){int op,a,b;cin>>op>>a>>b;if(op==1){//重塑s=0;for(int i=0;i<a;i++){for(int j=0;j<b;j++){c[i][j]=d[s];s++;}} }if(op==2)/*转置 */{s=0;for(int i=0;i<n;i++){for(int j=0;j<m;j++){c[j][i]=d[s];s++;}}s=0;//转置之后更新,以便重塑 for(int i=0;i<m;i++){for(int j=0;j<n;j++){d[s]=c[i][j];s++;}}}if(op==3) /*//查询 */{k[sum]=c[a][b];sum++;}t--;}for(int i=0;i<sum;i++){cout<<k[i]<<endl;}return 0;
}
**注意,以上代码的各数组大小根据题意改变,DEV可能不支持太大的空间