[传智杯 #4 初赛] 竞争得分
题目描述
为了鼓励大家写出更好的作业,花栗鼠科技大学(Hualishu University of Science and Technology, HUST)的组原实验采用了竞争得分的方式。
具体来说,假设有
n
n
n 个人提交了作业,并且其中原始得分最低的人记作
a
m
i
n
a_{min}
amin ,原始得分最高的人记作
a
m
a
x
a_{max}
amax,第
i
i
i 个人的原始得分为
a
i
a_i
ai,那么第
i
i
i 个人的得分就是:
100
×
a
i
−
a
m
i
n
a
m
a
x
−
a
m
i
n
100 \times \frac{a_i-a_{min}}{a_{max}-a_{min}}
100×amax−aminai−amin
由于成绩系统的问题,最终录入的成绩只能是整数,采用直接去掉小数部分的方法。
输入格式
第一行一个整数 n n n 表示人数。( 1 ≤ n ≤ 1000 1 \leq n \leq 1000 1≤n≤1000)
第二行共 n n n 个整数,为序列 a a a ,其中 a i a_i ai 表示第 i i i 个人的原始作业得分。( 1 ≤ a i ≤ 1000 1 \leq a_i \leq 1000 1≤ai≤1000)
输出格式
一行,共 n n n 个整数,表示经过更新后每个人的得分。
样例 #1
样例输入 #1
3
1 2 3
样例输出 #1
0 50 100
C++实现
#include
using namespace std;
int main(){
int n;
cin>>n;
int a[]={1,2,3};
int min1=a[1];
int max1=a[1];
for(int i =0;i<3;i++){
if(a[i]>max1){
max1=a[i];
}
if(a[i]<min1){
min1=a[i];
}
}
cout<<“min1:”<<min1<<“,max1:”<<max1<<endl;
for(int i =0;i<3;i++){
int tmp = 100*(a[i]-min1)/(max1-min1);
cout <<tmp<<endl;
}
}
后续:
接下来我会不断用C++来实现信奥比赛中的算法题、C++考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容