# Greedy# Math# Simple Calculation

f716 - 計算學期成績

🔗 前往 ZeroJudge 原題

題目描述

題目要求根據給定的學生總分,計算蝸牛老師公式中的 ab 值,使得學期成績 y 的範圍在 55 到 100 之間。公式為 y = 45(x - a)/b + 55,其中 x 是學生的總分。

解題思路

根據題目描述,我們需要找到 ab 的值,使得所有學生的學期成績都在 55 到 100 之間。由於公式中 y 的範圍是固定的,我們可以通過找到學生總分 x 的最小值和最大值來計算 ab

a 應該是學生總分的最小值,這樣可以使得 (x - a) 總是正數或零。 b 應該是學生總分的最大值減去最小值,這樣可以使得 (x - a)/b 的範圍在 0 到 1 之間。

具體來說,a 等於所有學生總分的最小值,b 等於所有學生總分的最大值減去最小值。

複雜度分析

  • 時間複雜度: O(n)
  • 空間複雜度: O(1)

程式碼

#include <bits/stdc++.h>
using namespace std;
int a,ma=-1e9,mi=1e9;
int main(){
	while(cin >> a){
		mi=min(a,mi);
		ma=max(a,ma);
	}
	cout << mi << " " << ma-mi;
}

Discussion