題目連結(jié):
題目大意:
輸入第一列給定三正整數(shù) N 、 K 、 T(3 ≦ N 、 K 、 T ≦ 1000),代表有 N 個蘋果派(編號為 0 ~ N - 1)、K 個人試吃、T 為平均分?jǐn)?shù)之及格門檻。
接下來有 N 列,依序代表著編號 0 ~ N - 1 之蘋果派。每列給定 K 個正整數(shù),代表 K 個試吃員之評分。
當(dāng)有蘋果派的評分去掉最低分和最高分剩下的 K - 2 個值之平均大於等於 T 時,則代表該編號的蘋果派是合格的。
請輸出所有合格蘋果派之編號,一個編號佔(zhàn)一列輸出。如果沒有任何合格的蘋果派則輸出「A is for apple.」。
範(fàn)例輸入:
範(fàn)例輸入 #1
7 4 40
1 2 4 8
8 5 2 3
3 4 1 8
7 6 1 5
1 8 4 7
3 2 8 6
1 3 2 7
範(fàn)例輸入 #2
9 7 10
9 15 13 2 6 3 12
12 14 4 5 3 7 19
10 8 4 14 6 18 19
11 17 1 19 4 6 3
8 13 14 16 12 3 17
4 9 8 3 19 17 7
19 2 12 4 1 15 8
11 16 4 12 1 5 19
1 11 9 6 4 19 15
範(fàn)例輸出:
範(fàn)例輸出 #1
A is for apple.
範(fàn)例輸出 #2
2
4
解題思維:
單純地對每個蘋果派之評分中先找出最高分以及最低分(掃過一次即可線性地找到最大值和最小值,如
這題),將總和減去最高、最低分。接著因?yàn)槠骄悼赡苁歉↑c(diǎn)數(shù),而為了避免浮點(diǎn)數(shù)誤差我們可以將原先的判斷式
總和 ÷ (K - 2) ≧ T
兩邊同乘以 (K - 2) 得
總和 ≧ T × (K - 2)
因?yàn)?K ≧ 3,所以 K - 2 將是正數(shù)也因此不會更動原關(guān)係式的大小關(guān)係。
當(dāng)有蘋果派符合上面的關(guān)係式時,代表這個派即是題目的合格蘋果派,因此輸出其編號。如果掃完所有蘋果派之後都沒有任何一個合格(可以用一布林變數(shù)來判斷有無合格者,一開始設(shè)為「沒有」),就輸出「A is for apple.」。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。