返回列表 發帖

APCS大學程式設計先修檢測(2016/03/05)第3題

本帖最後由 ray 於 2022-1-23 10:49 編輯

https://zerojudge.tw/ShowProblem?problemid=b966
#輸入字串(160 180)用空白分割成兩個數字字串
s = input()
s2 = s.split(' ')
#二維陣列
a = []
b = [160,180]
a.append(b)
b = [150,200]
a.append(b)
print(a)
#排序
a.sort(key=lambda x:x[0])
#迴圈取值
for i in range(0,len(a)):
    print(a[0], a[1])

本帖最後由 劉愷威 於 2022-1-23 11:56 編輯
  1. from sys import stdin
  2. try:
  3.     while True:
  4.         l=int(input())
  5.         a=[]
  6.         for i in range(l):
  7.             b=list(map(int,input().split()))
  8.             a.append(b)
  9.         a.sort(key=lambda b:b[0])
  10.         t=0
  11.         t=t+a[0][1]-a[0][0]
  12.         m=a[0][1]
  13.         for i in range(1,len(a)):
  14.             if a[i][1]>m:
  15.                 if a[i][0]>m:
  16.                     t=t+a[i][1]-a[i][0]
  17.                     m=a[i][1]
  18.                 else:
  19.                     t=t+a[i][1]-m
  20.                     m=a[i][1]
  21.         print(t)
  22. except EOFError:
  23.     pass
複製代碼

TOP

  1. try:
  2.     while True:
  3.         a = []
  4.         
  5.         n = int(input())
  6.         for i in range(0,n):
  7.             s = input()
  8.             s2 = s.split(' ')
  9.             x = int(s2[0])
  10.             y = int(s2[1])
  11.             b = [x,y]
  12.             a.append(b)
  13.         #print(a)

  14.         a.sort(key=lambda x:x[0])
  15.         c = a[0][1]-a[0][0]
  16.         m = a[0][1]
  17.         for i in range(1, len(a)):
  18.             if m < a[i][0]: #無重複
  19.                 c += a[i][1]-a[i][0]
  20.                 m = a[i][1]
  21.             elif m < a[i][1]: #有重複一段
  22.                 c += a[i][1]-m
  23.                 m = a[i][1]

  24.         print(c)
  25. except:
  26.     pass
複製代碼

TOP

本帖最後由 劉愷恩 於 2022-1-23 11:30 編輯
  1. a=[]
  2. N=int(input())
  3. for i in range(N):
  4.     ans=list(map(int, input().split()))
  5.     a.append(ans)
  6. a.sort(key=lambda x:x[0])

  7. length=a[0][1]-a[0][0]
  8. right=a[0][1]
  9. for i in range(N):
  10.     if a[i][0]<=right:  #最左邊比目前最右邊小
  11.         if a[i][1]<=right:  #最右邊也比目前最右邊小
  12.             length=length
  13.         elif a[i][1]>right:  #最右邊比目前最右邊大
  14.             length+=a[i][1]-right
  15.             right=a[i][1]
  16.     elif a[i][0]>right: #最左邊比最右邊大
  17.         length+=a[i][1]-a[i][0]
  18.         right=a[i][1]
  19. print(length)
複製代碼

TOP

返回列表