为啥这个代码总是有一个测试点过不了
玄关1求助
#include<bits/stdc++.h>
using namespace std;
const long long INf=0x3f3f3f3f3f3f;
int n;
long long a,b;
long long d[200009];
long long r=INf,l=-INf;
bool flag=1;
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++){
cin>>d[i];
if(d[i]>=a)
flag=0;
} if(flag==1){
cout<<"Yes"<<endl;
return 0;
} for(int i=1;i<=n;i++){
long long pl=(1-d[i])%(a+b);
long long pr=(a-d[i])%(a+b);
if(pr==0)
pr=a+b;
if(pl==0)
pl=a+b;
if(pr<0)
pr+=a+b;
if(pl<0)
pl+=a+b;
if(pr<pl)
pr+=a+b;
if(l>=a+b&&r>=a+b&&pl<a+b&&pr<a+b)
pl+=a+b,pr+=a+b;
l=max(l,pl);
r=min(r,pr);
} if(l<=r)
cout<<"Yes"<<endl;
else cout<<"No"<<endl;
return 0;
}