题目描述
试题编号: 201909-1
试题名称: 小明种苹果
时间限制: 2.0s
内存限制: 512.0MB
解题思路
- 题目描述有点长。仔细一点读下来,理解了题意,会发现计算过程比较简单。
- 计算过程是:
(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操作。
测试用例
下面给出测试用例。前两个是题目描述中的测试用例,供读者复制。
-
N, M的常规情形。(题目描述中的样例1)
样例输入
3 3
73 -8 -6 -4
76 -5 -10 -8
80 -6 -15 0
样例输出
167 2 23 -
N, M的常规情形,两棵苹果树的蔬果去掉的数目相等,输出的编号选小的。(题目描述中的样例2)
样例输入
2 2
10 -3 -1
15 -4 0
样例输出
17 1 4 -
N=1,即N的边界情形。
样例输入
1 1
8 0
样例输出
8 1 0 -
M=0,即M的边界情形。
样例输入
1 0
9
样例输出
9 1 0
小结
- 题目描述挺长,看着吓人,理解题意后会发现要解决的问题比较简单。所以,不要被题目描述的冗长吓到了。
- 利用Python语言的数值列表的统计函数,比如sum, max, min,解答本题是简洁明了的。这一点相比于C语言有优势。