求调悬棺(●'◡'●)
#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";
}