思路是这么个思路,代码是这么个代码,错误是自己排查不出的
查看原帖
思路是这么个思路,代码是这么个代码,错误是自己排查不出的
719843
lizhuorong楼主2024/7/23 16:38

求调悬棺(●'◡'●)

#include<bits/stdc++.h>
using namespace std;
int s[200005];
int main(){
	freopen("b12.in","r",stdin);
	int n,b,a,l=INT_MIN,r=INT_MAX;
	scanf("%d%d%d",&n,&a,&b);
	long long d=a+b;
	for(int i=1;i<=n;i++){
		scanf("%d",&s[i]);
		s[i]=s[i]%d;//预处理s[i] 
	}
   //有左右两个端点,(端点为实心点,可取)
	for(int i=1;i<=n;i++){
		if(s[i]<d&&s[i]>a){
			l=max(l,a+b+1);
			r=min(r,a+a+b);
		}
		else if(s[i]<d&&s[i]<=a){
			l=max(0,l);
			r=min(a-s[i],r);
		}
		if(s[i]==0){
			l=max(l,1);
			r=min(r,a);
		}
	} 
   //如果左端点大于右端点,就没有可取值了,输出No
	if(l>r) cout<<"No";
	else cout<<"Yes";
}

2024/7/23 16:38
加载中...