#include<bits/stdc++.h>
#define FOR(i,a,b) for(int i = a; i <= b; i++)
#define ROF(i,a,b) for(int i = a; i >= b; i--)
#define mem(a,b);memset(a,b,sizeof(a))
#define ll long long
using namespace std;
const int maxn = 210000;
ll sum[maxn];
int a[maxn];
int main(){
ll n,p,q,r;
cin >> n >> p >> q >> r;
mem(sum,0);
FOR(i,1,n){
cin >> a[i];
sum[i] += sum[i-1] + a[i];
}
int left = 0, right = 1,pos = 1;
while(right <= n){
ll cur = sum[right] - sum[left];
if(pos == 1){
while(cur > p){
left++;
cur = sum[right]-sum[left];
}
if(p == cur){
left = right;
pos++;
//cout<<"right1="<<right<<endl;
}
}else if(pos == 2){
while(cur > q){
left++;
cur = sum[right]-sum[left];
}
if(q == cur){
left = right;
pos++;//cout<<"right2="<<right<<endl;
}
}else if(pos == 3){
while(cur > r){
left++;
cur = sum[right]-sum[left];
}
if(r == cur){
pos++;//cout<<"right3="<<right<<endl;
break;
}
}
right++;
}
if(pos == 4){
cout << "Yes" << endl;
}else cout << "No" << endl;
return 0;
}
ABC 265 D - Iroha and Haiku
于 2022-08-22 23:40:45 首次发布