D求调 重金悬赏 5 RMB
  • 板块学术版
  • 楼主CleverRaccoonʕ•ᴥ•ʔ
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/12/14 21:44
  • 上次更新2024/12/14 21:48:10
查看原帖
D求调 重金悬赏 5 RMB
718487
CleverRaccoonʕ•ᴥ•ʔ楼主2024/12/14 21:44

样例都过了,AC*51,WA*3,求调。

重金 5 RMB,万分感谢。

#include <bits/stdc++.h>
using namespace std;

#define int long long

const int N=2e5+48;
long long n,s,a[N*2],sum;

signed main(){
	cin.tie(nullptr)->sync_with_stdio(false);
	cin>>n>>s;
	for(int i=1;i<=n;i++){cin>>a[i];sum+=a[i];}
	for(int i=1;i<=n;i++){a[i+n]=a[i];sum+=a[i+n];}
	if(s%sum==0){
		cout<<"Yes\n";
		return 0;
	}
	n*=2;
	s%=sum;
	sum=0;
	for(int i=1,j=1;i<=j&&j<=n;){
		while(sum<s&&j<=n){
			sum+=a[j++];
			if(sum==s){cout<<"Yes\n";return 0;}
		}
		while(sum>s&&i<=j){
			sum-=a[i++];
			if(sum==s){cout<<"Yes\n";return 0;}
		}
	}
	cout<<"No\n";
	return 0;
}

2024/12/14 21:44
加载中...