> 文档中心 > C++ 排名

C++ 排名

【 问题描述】

小明班里一共N名同学,小明这次考试考的不错,他知道他考了多少分,以及班级里的同学一共考了多少分,小明还知道这次考试满分为
100,问小明最高可以排第几,最低可以排第几。

(相同分数算并列的排名,比如总共 4 个人 7,6,6,5,那么他们的排名分别就是 1,2,2,4)

【输入格式】
第一行包括三个整数N,A,S,分别表示班里同学的人数,小明的分数,以及班里同学的总分。

【输出格式】
包括两个用空格隔开的正整数,分别表示小明在最优情况下的排名,以及在最坏情况下的排名。

【输入样例】

5 90 450

【输出样例】

1 4

【样例解释】

唯一一种最优情况 90 90 90 90 90,小明排第一

一种最坏情况 100 95 95 90 70,小明排第四

【数据规模】40%的数据,1≤N≤10对于 100%的数据,1≤N≤105,0≤A≤100,0≤S≤100∗N

CODE

#includeusing namespace std;int n,a,s,ans,cnt = 0;int main(){cin>>n>>a>>s;while((n-cnt)*a+cnt*100 < s && cnt < n)++cnt;ans=cnt+1; cout<<ans<<" ";cnt=n;if(a==100){cout << 1 << endl;return 0;}while((cnt-1)*(a+1)+a > s && cnt > 1)--cnt;cout << max(ans,cnt) << endl;return 0;}

明天再见,拜拜!

在这里插入图片描述