什么是时尚题解

什么是时尚?

Description
小朋友们喜欢追赶时尚潮流。 从算术的角度来说,我们可以认为: 每个时尚都有一个起始的吸引值L(1 <= L <= 50,000)。 每个小朋友都有一个时尚对抗值R_i (0 <= R_i <= 1,000,000)。 当一个时尚的吸引值大于等于一头小朋友的对抗值时,小朋友将会加入这个时尚潮流。 每个加入的小朋友将增加这个时尚K(1 <= K <= 2,500)点吸引值(从众心理,加入的小朋友越多越流行)。对于给定的N(1 <= N <= 100,000)个小朋友,请求出有多少头会加入给定的时尚。

Input
行1:三个空格隔开的整数:N,L和K 行2…N+1:第i+1行包含一个单独的整数,代表第i头小朋友的时尚对抗值:R_i

Output
行1:一个单独的整数,代表最终会加入这个时尚潮流的小朋友数目。

Examples
input
5 2 3
2
6
12
5
14
output
3

先给数组排序,再从a[1]开始拿吸引值与抵抗值相比较,若吸引值大于抵抗值,那么吸引值+=k。否则break。

完整代码

#include <bits/stdc++.h>
#define F(a,b,c)for(int a=b;a<=c;a++)
using namespace std;
long long n,l,k,a[500001],ans;
int main(){
	cin>>n>>l>>k;
	F(i,1,n)cin>>a[i];
	sort(a+1,a+n+1);
	if(a[1]>l){
		cout<<0;
		return 0;
	}
	F(i,1,n){
		if(a[i]<=l)l+=k,ans++;
		else break;
	}
	cout<<ans;
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值