小美是團隊的負責人,需要為團隊制定工作的計划,以幫助團隊產出最大的價值。
每周團隊都會有兩項候選的任務,其中一項為簡單任務,一項為復雜任務,兩項任務都能在一周內完成。第i周,團隊完成簡單任務的價值為li,完成復雜任務的價值為hi。由於復雜任務本身的技術難度較高,團隊如果在第i周選擇執行復雜任務的話,需要在i-1周不做任何任務專心准備。如果團隊在第i周選擇執行簡單任務的話,不需要提前做任何准備。
現在小美的團隊收到了未來N周的候選任務列表,請幫助小美確定每周的工作安排使得團隊的工作價值最大。
輸入描述:
第一行為N(0≤N≤1000)
接下來的N行表示第1到N周兩項候選任務的價值,第i行的格式為:li hi,其中 0 < li < 10000, 0< hi < 10000。
輸出描述:
輸出一個數字,表示小美團隊在未來N周能產出的最大價值。
輸入例子1:
4 10 5 1 50 10 5 10 1
輸出例子1:
70
第一周就做了困難的工作,如果第一周要求不能做困難工作,那么第一周只能選擇li,初始條件改變
def maxValue(n, li, hi): pre, cur = 0, 0 for i in range(n):
pre, cur = cur, max(pre+hi[i], cur+li[i]) return cur n = int(input()) li, hi = [], [] for i in range(n): tmp = input().strip().split() li.append(int(tmp[0])) hi.append(int(tmp[1])) print(maxValue(n, li, hi))
第一周要求不能做困難工作
def maxValue(n, li, hi): pre, cur = 0, 0 for i in range(n): if i == 0: pre, cur = cur, pre+li[i] pre, cur = cur, max(pre+hi[i], cur+li[i]) return cur n = int(input()) li, hi = [], [] for i in range(n): tmp = input().strip().split() li.append(int(tmp[0])) hi.append(int(tmp[1])) print(maxValue(n, li, hi))