384D
为什么 m 是 map 就能过,正常数组就RE啊,就这样RE了11次?神奇
#include<bits/stdc++.h>
using namespace std;
int n;
int a[200005];
long long l;
long long s[200005];
map<long long,bool> m;
int main() {
cin>>n>>l;
for(int i=1; i<=n;i++) {
cin>>a[i];
s[i]=s[i-1]+a[i];
m[s[i]]=1;
}
for(int i=1;i<=n;i++) {
long long p=l-s[n]+s[i-1];
if (p < 0) break;
if (m[p%s[n]] || m[p%s[n]+s[n]]) {
cout<<"Yes"<<endl;
return 0;
}
}
cout<<"No"<<endl;
return 0;
}