0
已解决
李沐阳
初级守护
初级守护
题目链接: 酷町堂:7531
题目描述 Deion
信息3班的同学今天要拍毕业照了,他们站成了一个矩阵。但是由于有些同学站错位置了,需要交换一些同学的位置。现在给你一个m行n列的矩阵,先将第a行和第b行交换,再将第c列和第d列交换,输出交换后的结果。 (数学上,一个r×c的矩阵是一个由r行c列元素排列成的矩形阵列)
输入描述 Input Deion
输入为m+1行:
第一行为6个整数,分别为矩阵的行数m、列数n和需要交换的两行a、b以及需要交换的两列c、d,每个整数以一个空格隔开
之后的m行为该矩阵的所有m行n列元素,每一行的元素之间用一个空格隔开。
输出描述 Output Deion
输出为m行,为交换后的矩阵,每一行的元素之间用一个空格隔开。
样例输入 Sample Input
5 4 1 3 2 3 1 2 3 4 4 3 2 1 6 7 8 9 9 8 7 6 4 5 6 7
样例输出 Sample Output
6 8 7 9 4 2 3 1 1 3 2 4 9 7 8 6 4 6 5 7
数据范围及提示 Data Size & Hint
m和n不超过100
#include<iostream>
#include<cstdio>
int s[10001][10001],m,n,a,b,c,d;
using namespace std;
int main(){
cin>>m>>n>>a>>b>>c>>d;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cin>>s[i][j];
}
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
swap(s[a][j],s[b][j]);
}
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
swap(s[j][c],s[j][d]);
}
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
swap(s[m][c],s[m][d]);
}
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cout<<s[i][j]<<" ";
}
cout<<"\n";
}
return 0;
}