1. 程式人生 > 其它 >CSP201909-1 小明種蘋果 (Python)

CSP201909-1 小明種蘋果 (Python)

技術標籤:CCFCSP演算法python

文章目錄

題目

試題編號:201909-1
試題名稱:小明種蘋果
時間限制:2.0s
記憶體限制:512.0MB

題目描述
  小明在他的果園裡種了一些蘋果樹。為了保證蘋果的品質,在種植過程中要進行若干輪疏果操作,也就是提前從樹上把不好的蘋果去掉。第一輪疏果操作開始前,小明記錄了每棵樹上蘋果的個數。每輪疏果操作時,小明都記錄了從每棵樹上去掉的蘋果個數。在最後一輪疏果操作結束後,請幫助小明統計相關的資訊。
輸入格式
  從標準輸入讀入資料。
  第1行包含兩個正整數 N 和 M,分別表示蘋果樹的棵數和疏果操作的輪數。
  第1+i行(1 ≤ i ≤ N),每行包含 M+1個整數 ai0

,ai1,….,aiM。其中ao為正整數,表示第一輪疏果操作開始前第i棵樹上蘋果的個數。aij(1 ≤ j ≤ M)為零或負整數,表示第j輪疏果操作時從第i棵樹上去掉的蘋果個數。如果為零,表示沒有去掉蘋果;如果為負,其絕對值為去掉的蘋果個數。
  每行中相鄰兩個數之間用一個空格分隔。
輸出格式
  輸出到標準輸出。
  輸出只有一行,包含三個整數 T、k和 P。其中,
  ·T為最後一輪疏果操作後所有蘋果樹上剩下的蘋果總數(假設蘋果不會因為其
他原因減少);
  ·k為疏果個數(也就是疏果操作去掉的蘋果個數)最多的蘋果樹編號(如有並列,
輸出滿足條件的最小編號);
  ·P為該蘋果樹的疏果個數。
  相鄰兩個數之間用一個空格分隔。輸入資料保證是正確的,也就是說,每棵樹在全部疏果操作結束後剩下的蘋果個數是非負的。
樣例1 輸入
  3 3
  73 -8 -6 -4
  76 -5 -10 -8
  80 -6 -15 0
樣例1 輸出
  167 2 23
樣例1 解釋
  第1棵蘋果樹的疏果個數為 8+6+4= 18,第 2 棵為5+10+8= 23,第 3棵為6+15+0= 21,因此最後一輪疏果操作後全部蘋果樹上的蘋果個數總和為(73-18)+(76-23)+(80-21)=167,疏果個數最多的是第2棵數,其疏果個數為23。
樣例2 輸入
  2 2
  10 -3-1
  15 -4 0
樣例 2 輸出

  17 1 4
樣例 2 解釋
  兩棵樹的疏果個數均為4,應該輸出編號最小的第1棵樹。
子任務
在這裡插入圖片描述

|aij| ≤ 106,對所有1 ≤ i ≤ N,0 ≤ j ≤ M。

程式程式碼

# 輸入蘋果棵樹和疏果輪數
n,m = input().split()
n = int(n)
m = int(m)

# 剩餘總蘋果數量
sum = 0

# 疏果數量最多的蘋果樹編號
maxIndex = 0

# 該蘋果樹疏果的數量
maxCount = 0

# 遍歷所有蘋果樹
for i in range(n):
    # 初始化疏果數量
    subSum = 0

    # 輸入原始蘋果數和疏果數量
    numberList = input().split()
    number = int(numberList.pop(0))

    # 型別轉換並求和
    for j in range(m):
        numberList[j] = int(numberList[j])
        subSum -= numberList[j] # 注意此處符號
    sum += number - subSum # 求總疏果數量
    
    # 計算疏果數量最多的蘋果樹
    if subSum > maxCount:
        maxCount = subSum
        maxIndex = i + 1

# 輸出
print(sum,maxIndex,maxCount)