题目描述
为了鼓励大家写出更好的作业,花栗鼠科技大学(Hualishu University of Science and Technology, HUST)的组原实验采用了竞争得分的方式。
具体来说,假设有 nn 个人提交了作业,并且其中原始得分最低的人记作 a_{min}amin ,原始得分最高的人记作 a_{max}amax,第 ii 个人的原始得分为 a_iai,那么第 ii 个人的得分就是:
100 \times \frac{a_i-a_{min}}{a_{max}-a_{min}}100×amax−aminai−amin
由于成绩系统的问题,最终录入的成绩只能是整数,采用直接去掉小数部分的方法。
输入格式
第一行一个整数 nn 表示人数。(1 \leq n \leq 10001≤n≤1000)
第二行共nn 个整数,为序列 aa ,其中 a_iai 表示第 ii 个人的原始作业得分。(1 \leq a_i \leq 10001≤ai≤1000)
输出格式
一行,共 nn 个整数,表示经过更新后每个人的得分。
输入输出样例
输入 #1
3
1 2 3
输出 #1
0 50 100
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
int main() {
int n, a;
int m;
cin >> n;
m = n;
vector<int> pre_res;
while (n--) {
cin >> a;
pre_res.push_back(a);
}
int maxa = *max_element(pre_res.begin(), pre_res.end());
int mina = *min_element(pre_res.begin(), pre_res.end());
//cout << maxa << " " << mina;
if (maxa == mina) {
cout << 100;
m--;
while (m--) {
cout << " " << 100;
}
return 0;
}
cout << ((pre_res[0] - mina) * 100 / (maxa - mina));
for (int i = 1; i < m; ++i) {
cout << " " << ((pre_res[i] - mina) * 100 / (maxa - mina));
}
return 0;
}