打卡信奥刷题(002)用C++信奥P8841[普及组/提高] [传智杯 #4 初赛] 竞争得分

[传智杯 #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×amaxaminaiamin

由于成绩系统的问题,最终录入的成绩只能是整数,采用直接去掉小数部分的方法

输入格式

第一行一个整数 n n n 表示人数。( 1 ≤ n ≤ 1000 1 \leq n \leq 1000 1n1000

第二行共 n n n 个整数,为序列 a a a ,其中 a i a_i ai 表示第 i i i 个人的原始作业得分。( 1 ≤ a i ≤ 1000 1 \leq a_i \leq 1000 1ai1000

输出格式

一行,共 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++考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值