题目链接:A-Bridging the Gap 2_2024牛客暑期多校训练营3 (nowcoder.com)
思路:最少需要趟,对于每个人最多来回的趟数为,当条件达成时即为可行。
ac代码如下:
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
int n,l,r;
cin>>n>>l>>r;
int sum=0;
int s=(n-r+r-l-1)/(r-l);// 向上取整
for(int i=0;i<n;i++) {
int a;
cin>>a;
sum+=min(s,(a-1)/2);
}
if(sum>=s*l) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}