问题标题: 酷町堂:毕业照2

0
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;
}

 


0
0
0
我要回答