1 条题解

  • 0
    @ 2023-12-4 9:47:12
    #include <stdio.h>
    #define N 1010
    int a[N][N];
    int st[N][N];  // st[i][j]=2 表示是行的最大值,列的最小值
    int main() {
        int n = 5;
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= n; j++) scanf("%d", &a[i][j]);
    
        for (int i = 1; i <= n; i++) {
            int k = 1;  // 行最大值
            for (int j = 1; j <= n; j++)
                if (a[i][j] > a[i][k]) k = j;
            for (int j = 1; j <= n; j++)
                if (a[i][j] == a[i][k]) st[i][j]++;
    
            k = 1;  // 列最小值
            for (int j = 1; j <= n; j++)
                if (a[j][i] < a[k][i]) k = j;
            for (int j = 1; j <= n; j++)
                if (a[j][i] == a[k][i]) st[j][i]++;
        }
    
        int cnt = 0;  // 输出先列后行
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= n; j++)
                if (st[j][i] == 2) {
                    printf("%d %d %d\n", j, i, a[j][i]);
                    cnt++;
                }
        if (cnt == 0) puts("not found");
        return 0;
    }
    
    • 1

    信息

    ID
    134
    时间
    1000ms
    内存
    512MiB
    难度
    6
    标签
    递交数
    98
    已通过
    29
    上传者