2020年4月3日 星期五

[C_MM210-易] 道路綠美化

[C_MM210-易] 道路綠美化

成績: 0 / 倒扣: 0.8
問題描述: 環保市 政府想在大學路上進行道路綠美化工程,預計在道路上起始端 ( 第 0 公尺 ) 種一棵樹,之後每隔 公尺種一棵樹,而在道路終點處設立一支路燈,之後反向每隔 公尺設立一支路燈,為了夜間行路的安全視政府認為路燈比樹重要,所以當一處需要路燈以及樹時,將只設立路燈而不種樹,若大學路的長度為 公尺請幫 環保市 政府算算總共需要幾棵樹和幾支路燈。
CMM210.JPG
輸入說明: 第一行有一個正整數 ,表示共有 筆測試資料。接下來有 行,每行為一筆測試資料,內含三個整數,每個整數間有一個空格,各整數分別代表道路總長 M <= 10000 及路燈和樹的間距 1 <= x,y <= 100。
輸出說明: 每筆測試資料先 輸出樹後輸出路燈的數量 於一行,兩數間以一個空格隔開。
範例
Sample InputSample Output
2
19 2 3
120 5 4

7 7
18 31
這裡我用兩個串列來放樹及燈的位置,先按燈的要求放入燈,放樹時再檢查該位置是否已有樹,沒有再放樹,最後統計兩串列的長度就是答案

  while True:
    try:
        N = int(input())
        for i in range(N):
            T, L = [], []
            M, x, y = map(int,input().split())
            for l in range(M, -1, -y): #先放燈
                L.append(l)
            for t in range(0, M+1, x): #如果放樹時已有燈就不放樹
                if t not in L:T.append(t)
            print('%d %d' % (len(T), len(L)))
    except(EOFError):
        break

沒有留言:

張貼留言