2301: 【入门】操场换位置

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

同学们在操场上排成了一个 n 行 m 列的队形,请将这个队形中,年龄最大的同学和年龄最小的同学交换位置,并输出交换的结果(本题数据保证年龄最大的同学和年龄最小的同学在矩阵中是唯一的)。

比如:如下是一个 3 行 4 列的队形,这个队形中每个数字代表了每个同学的年龄。

8 10 18 9

15 12 10 6 

17 3 12 15

这个队形中,年龄最大的同学在第 1 行第 3 列,年龄最小的同学在第 3 行第 2 列,将他们交换位置后输出结果为:

8 10 3 9 

15 12 10 6 

17 18 12 15


输入

第 1 行有 2 个整数 n 和 m ,分别代表队形的行和列的值(2≤n,m≤200)。

接下来 n 行,每行有 m 个整数,代表每个同学的年龄(每个同学的年龄的值在 1∼100 之间)

输出

输出 n 行 m 列,代表交换位置后的结果,每行的 m 个数之间用空格隔开。

样例输入 复制

3 4
8 10 18 9
15 12 10 6
17 3 12 15

样例输出 复制

8 10 3 9
15 12 10 6
17 18 12 15

提示

#include<bits/stdc++.h>
using namespace std;
const int N=210;
int a[N][N],n,m,ma=INT_MIN,mi=INT_MAX;
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++) {
    	for(int j=1;j<=m;j++) {
    		cin>>a[i][j];
    		ma=max(ma,a[i][j]);
    		mi=min(mi,a[i][j]);
		}
	}
    for(int i=1;i<=n;i++) {
    	for(int j=1;j<=m;j++) {
    		if (a[i][j]==ma) cout<<mi<<" ";
    		else if(a[i][j]==mi) cout<<ma<<" ";
    		else cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}	
	return 0;
}