新手守护
2554 行最小列最大
经验值:1200
时间限制:1000毫秒
内存限制:128MB
题目描述 Description
给一个n*n的矩阵,每行只有一个最小值,每列只有一个最大值,请你寻找这个矩阵中的某个元素,它既是所在行的最小值也是所在列的最大值。如果该矩阵中没有某个元素满足时行最小值且是列最大值,则输出“N”。
输入描述 Input Description
第一行:n,1<n<10
接下来n行:n*n的矩阵
输出描述 Output Description
如果找到了某个元素值既是行最小值又是列最大值,则输出该元素的值,第几行,第几列
如果没有找到这样的元素则输出N
样例输入 Sample Input
5 11 12 10 8 15 3 4 5 6 10 5 7 6 4 11 6 8 9 7 20 9 10 11 2 25
样例输出 Sample Output
8 1 4
张子灏在2024-02-02 15:06:24追加了内容
#include <iostream>
using namespace std;
int n,m,a[200][200],i,j,max=-1,min_i,min_j,min,k,sum=0;
int main(){
cin>>n;
for(i=0;i<=n-1;i++){
for(j=0;j<=n-1;j++){
cin>>a[i][j];
}
}
for(i=0;i<n;i++){
max=a[i][0];
max_i=i;
max_j=0;
for(int j=1;j<n;j++){
if(max>a[i][j]){
max=a[i][j];
max_i=i;
max_j=j;
}
}
for(k=0;k<n;k++){
if(max<a[k][max_j]) break;
}
if(k==5){
cout<<max<<" "<<max_i+1<<" "<<max_j+1;
return 0;
}
}
cout<<"N";
return 0 ;
}