69,373
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<stdlib.h>
#define MAX_ROW 50
#define MAX_COL 50
int main(){
int r,c,n,q; //r行c列,起始为1行1列
char order[3]; //命令名称
int total_times=0;
int arr[MAX_ROW][MAX_COL]; //arr[0][0]表示第一行第一列,数值是1111
while(scanf("%d%d",&r,&c)!=EOF){
if(r==0 && c==0){
break;
}
//初始化
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
arr[i][j]=(i+11)*100+j+11;
}
}
scanf("%d",&n); //输入命令个数
while(n--){
scanf("%s",order);
if(order[0]=='E' && order[1]=='X'){
int r1,c1,r2,c2;
scanf("%d%d%d%d",&r1,&c1,&r2,&c2);
int position1=(r1+11)*100+c1+11;
int position2=(r2+11)*100+c2+11;
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
if(arr[i][j]==position1){
arr[i][j]=position2;
}
}
}
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
if(arr[i][j]==position2){
arr[i][j]=position1;
}
}
}
}
else if(order[0]=='D' && order[1]=='R'){
int times;
scanf("%d",×);
while(times--){
int dr; //delete row
scanf("%d",&dr);
for(int i=0;i<r;i++){
if((arr[i][0]/100)==(dr+10)){
for(int kk=0;kk<c;kk++){
arr[i][kk]==0;
}
for(i++;i<r;i++){
for(int k=0;k<c;k++){
arr[i][k]-=100;
}
}
}
}
}
}
else if(order[0]=='D' && order[1]=='C'){
int times;
scanf("%d",×);
while(times--){
int dc; //delete column
scanf("%d",&dc);
for(int i=0;i<c;i++){
if(arr[0][i]%100==(dc+10)){
for(int j=0;j<r;j++){
arr[j][i]==0;
}
for(;i<c;i++){
for(int j=0;j<r;j++){
arr[j][i]-=10;
}
}
}
}
}
}
else if(order[0]=='I' && order[1]=='R'){
int times;
scanf("%d",×);
while(times--){
int ir; //insert row
scanf("%d",&ir);
for(int i=0;i<r;i++){
if(arr[i][0]/100==(ir+10)){
for(;i<r;i++){
for(int j=0;j<c;j++){
arr[i][j]+=100;
}
}
}
}
}
}
else{ //"IC"
int times;
scanf("%d",×);
while(times--){
int ic; //insert column
scanf("%d",&ic);
for(int i=0;i<c;i++){
if(arr[0][i]%100==(ic+10)){
for(;i<r;i++){
for(int j=0;j<c;j++){
arr[j][i]+=10;
}
}
}
}
}
}
}
scanf("%d",&q);//查询
while(q--){
int row;
int column;
scanf("%d%d",&row,&column);
int tmp=arr[row-1][column-1];
if(tmp==0){
printf("Cell data in (%d,%d) GONE",row,column);
}
else{
printf("Cell data in (%d,%d) GONE",tmp/100-10,tmp%100-10);
}
}
total_times++;
}
return 0;
}