题目描述
体育课又来啦,今天的体育课,科丁博士带大家做的是“点兵点将3.0”;首先老师会给每位同学发一张卡片,每张卡片上都有一个数字(数字不会超过int的最大值),然后让大家按m行n列的阵型站好(2<=m,n<=100),体育老师会随机报出两个位置,然后对应的两位同学交换手中的卡片
现在给出每位同学卡片中的数字,并给出体育老师报出的两个同学的位置,求交换后每位同学手中数字
输入格式
第1行:两个整数:m和n,第一个数表示行数,第二个数表示列数
第2~m+1行:每行n个整数,表示每个同学卡片上的数字
第m+2行:两个整数x1,y1,表示老师报出的第一位同学所在的行和列
第m+3行:两个整数x2,y2,表示老师报出的第二位同学所在的行和列
输出格式
输出为m行n列的矩阵,对应交换后的每位同学手中的数字
输入输出样列
输入样例1:复制
5 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 4 3 2 1
输出样例1:复制
1 2 3 4 5 18 7 8 9 10 11 12 13 14 15 16 17 6 19 20 21 22 23 24 25
说明
第一位同学站的位置:第一行第一列
样例说明:样例中交换的是第4行第3列 与 第2行第1列的数字,即交换的是:18与6
【耗时限制】1000ms 【内存限制】128MB
#include <bits/stdc++.h>
using namespace std;
const int N=0;
int a[110][110];
int main(){
int m,n;
cin>>m>>n;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
int x1,x2,y1,y2;
cin>>x1>>y1;
cin>>x2>>y2;
swap(a[x1][y1],a[x2][y2]);
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}