題目連結:
題目大意:
輸入第一列給定一正整數 n (n < 20),代表有 n 筆測試資料。每筆測資的開頭第一列給定一正整數 f (0 < f < 20),代表有 f 位農夫。接著有 f 列輸入,每列給定三正整數,代表其中一位農夫的農場面積、動物數量以及環保等級。
每位農夫能拿到一些獎金,其計算方式為先計算每隻動物的平均居住空間,乘以環保等級,最後再乘以動物數量之值即是獎金。試問所有農夫的獎金總額為何?
保證每個輸入的正整數不超過 100000。
範例輸入:
3
5
1 1 1
2 2 2
3 3 3
2 3 4
8 9 2
3
9 1 8
6 12 1
8 1 1
3
10 30 40
9 8 5
100 1000 70
範例輸出:
38
86
7445
解題思維:
令農場面積 = A 、 動物數量 = B 、 環保等級 = E,因此每隻動物的平均居住空間 × 環保等級 × 動物數量等同於
(A ÷ B) × E × B
其等價於
A × E
即動物數量不影響獎金金額。
所以把所有農夫的 A × E 之值加總即是所求。
而因為 A 、 E 最大可以到 100000,所以有機會會超過 C++ 等 int 能儲存之範圍,建議用 long long 型態。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。