日期:2025年10月21日
ZeroJudge 題目連結:f716. 計算學期成績
解題想法
換算的公式為 $$ y = 45 \times \frac{x-a}{b} + 55 $$ 假設原始成績最高分為 $imax$、最低分為 $imin$,換算後成績最高分為 $100$、最低分為 $55$,代入上式可得 $$ 100 = 45 \times \frac{imax-a}{b} + 55 ~~~~~ 55 = 45 \times \frac{imin-a}{b} + 55 $$ 由以上2式可得 $$ b = imax - a ~~~~~ a = imin $$
Python 程式碼
使用時間約為 18 ms,記憶體約為 3.3 MB,通過測試。
scores = tuple(map(int, input().split()))
a = min(scores)
b = max(scores) - a
print(a, b)
C++ 程式碼
使用時間約為 2 ms,記憶體約為 92 kB,通過測試。2025年10月15日重測,使用時間約為 0 ms,記憶體約為 48 kB,通過測試。
#include <cstdio>
int main() {
int imin = 1E9, imax = 0, score;
while(scanf("%d", &score) != EOF) {
if (score < imin) imin = score;
if (score > imax) imax = score;
}
printf("%d %d\n", imin, imax - imin);
return 0;
}
沒有留言:
張貼留言