【 问题描述】
小明班里一共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
#include<bits/stdc++.h>
using 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;
}