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;}