Python入门习题(26)——CCF CSP认证考试真题:小明种苹果

题目描述

试题编号: 201909-1
试题名称: 小明种苹果
时间限制: 2.0s
内存限制: 512.0MB
题目描述图片1在这里插入图片描述

解题思路

  1. 题目描述有点长。仔细一点读下来,理解了题意,会发现计算过程比较简单。
  2. 计算过程是:
    (1) 对每一棵苹果树,求出蔬果完成后剩余的苹果数以及蔬果去掉的数目。
    (2) 合计全部苹果树上剩余的苹果数,即为第一项输出。
    (3) 找出N个蔬果去掉的数目中的最大值,即为第三项输出,其所属苹果树的编号即为第二项输出。

参考答案

N, M = [int(s) for s in input().split()]

remain = []  #第i项为苹果树i的剩余苹果数
removed = [] #第i项为苹果树i的去掉的苹果数目
for i in range(N):
    nums = [int(s) for s in input().split()]
    remain.append(sum(nums))
    removed.append(0 - sum(nums[1:]))

total = sum(remain)
removed_max = max(removed)
index_max = removed.index(removed_max)

print(total, index_max + 1, removed_max)  #下标比编号小1,故有+1操作。

测试用例

下面给出测试用例。前两个是题目描述中的测试用例,供读者复制。

  1. N, M的常规情形。(题目描述中的样例1)
    样例输入
    3 3
    73 -8 -6 -4
    76 -5 -10 -8
    80 -6 -15 0
    样例输出
    167 2 23

  2. N, M的常规情形,两棵苹果树的蔬果去掉的数目相等,输出的编号选小的。(题目描述中的样例2)
    样例输入
    2 2
    10 -3 -1
    15 -4 0
    样例输出
    17 1 4

  3. N=1,即N的边界情形。
    样例输入
    1 1
    8 0
    样例输出
    8 1 0

  4. M=0,即M的边界情形。
    样例输入
    1 0
    9
    样例输出
    9 1 0

小结

  1. 题目描述挺长,看着吓人,理解题意后会发现要解决的问题比较简单。所以,不要被题目描述的冗长吓到了。
  2. 利用Python语言的数值列表的统计函数,比如sum, max, min,解答本题是简洁明了的。这一点相比于C语言有优势。
发布了85 篇原创文章 · 获赞 86 · 访问量 31万+

猜你喜欢

转载自blog.csdn.net/yedouble/article/details/104086340