前往
大廳
主題

ZeroJudge - f819: 圖書館 (Library) 解題心得

Not In My Back Yard | 2021-05-10 00:00:16 | 巴幣 0 | 人氣 419

題目連結:


題目大意:
輸入第一列給定一正整數 N (1 ≦ N ≦ 2000),代表婷婷借了 N 本書。接著有 N 列輸入,每列給定兩正整數 S 、 D (1 ≦ S ≦ 2000,1 ≦ D ≦ 10000),代表每本書的編號(保證每本書編號相異)以及已借閱天數。

圖書館規定:每本書借閱期限為 100 天。每逾一日,每本罰款五元。

請找出婷婷借閱的書中,所有超過借閱期限的書籍之編號以及總罰款。第一列由小到大輸出所有逾時的書籍之編號、第二列則輸出一整數代表總罰款。如果沒有任何書逾時,則輸出一列的「0」即可。



範例輸入:
範例輸入 #1
1
44 98

範例輸入 #2
3
30 45
12 151
23 122

範例輸入 #3
5
40 21
83 182
15 102
51 203
90 88


範例輸出:
範例輸出 #1
0

範例輸出 #2
12 23
365

範例輸出 #3
15 51 83
935


解題思維:
定義一陣列 T 以及一變數 M (M 的初始值為 0),用來儲存所有逾時的書籍編號以及總罰款金額。

對於每個 S 、 D 之輸入,判斷 D 是否 > 100。如果是,則代表編號 S 之書籍已經超時,所以將編號 S 存入 T 內。然後將 M 加上 (D - 100) × 5 ,代表該書之罰金。

每本書都掃過之後,將 T 由小到大排序即可得所求輸出第一列的書籍編號,而第二列的金額即是此時的 M 值。當 T 為空(也可以換成 M 為 0),即代表著沒有任何書逾時借閱,因此輸出一個「0」即可。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作