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

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

明天再见,拜拜!

在这里插入图片描述

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

༺Blog༒Hacker༻

您的鼓励将是我更新最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值