PAT Basic 1107. 老鼠爱大米

发布时间 2023-04-17 21:41:56作者: 十豆加日月

PAT Basic 1107. 老鼠爱大米

1. 题目描述:

翁恺老师曾经设计过一款 Java 挑战游戏,叫“老鼠爱大米”(或许因为他的外号叫“胖胖鼠”)。每个玩家用 Java 代码控制一只鼠,目标是抢吃尽可能多的大米让自己变成胖胖鼠,最胖的那只就是冠军。

因为游戏时间不能太长,我们把玩家分成 \(N\) 组,每组 \(M\) 只老鼠同场竞技,然后从 \(N\) 个分组冠军中直接选出最胖的冠军胖胖鼠。现在就请你写个程序来得到冠军的体重。

2. 输入格式:

输入在第一行中给出 2 个正整数:\(N\)\(≤100\))为组数,\(M\)\(≤10\))为每组玩家个数。随后 \(N\) 行,每行给出一组玩家控制的 \(M\) 只老鼠最后的体重,均为不超过 \(10^4\) 的非负整数。数字间以空格分隔。

3. 输出格式:

首先在第一行顺次输出各组冠军的体重,数字间以 1 个空格分隔,行首尾不得有多余空格。随后在第二行输出冠军胖胖鼠的体重。

4. 输入样例:

3 5
62 53 88 72 81
12 31 9 0 2
91 42 39 6 48

5. 输出样例:

88 31 91
91

6. 性能要求:

Code Size Limit
16 KB
Time Limit
400 ms
Memory Limit
64 MB

思路:

回血题,统计各行最大值和总体最大值,维护两个最大值变量rowMaxallMax即可。

My Code:

#include <stdio.h>

int main(void)
{
    int row=0, col=0;
    int rowMax=0, allMax=0;
    int i=0, j=0; // iterator
    int tempWeight=0;
    
    scanf("%d%d", &row, &col);
    
    allMax = -1;
    for(i=0; i<row; ++i)
    {
        rowMax = -1;
        for(j=0; j<col; ++j)
        {
            scanf("%d", &tempWeight);
            if(tempWeight>rowMax) rowMax = tempWeight;
        }
        if(!i) printf("%d", rowMax);
        else printf(" %d", rowMax);
        
        if(rowMax > allMax) allMax = rowMax;
    }
    printf("\n"); // end a line
    printf("%d\n", allMax);
    
    return 0;
}