92分,求助
  • 板块P1956 Sum
  • 楼主Shiota_Nagisa
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/1/29 21:26
  • 上次更新2024/5/12 17:07:19
查看原帖
92分,求助
547658
Shiota_Nagisa楼主2024/1/29 21:26
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e5;
set<int> x;
int a[N+10],qzh[N+10],n,k,p,ans=1ll<<60;
signed main(){
	cin>>n>>k>>p;
	for(int i=0;i<n;i++){
		cin>>a[i];
		qzh[i]=(qzh[i-1]+a[i])%p;
	}
//	for(int i=0;i<n;i++){
//		cout<<qzh[i]<<" ";
//	}
//	cout<<endl;
	x.insert(0);
	for(int i=0;i<n;i++){
		if(qzh[i]>=k){
			ans=min(ans,(qzh[i]-(*--x.upper_bound(qzh[i]-k)%p))%p);
		}
		x.insert(qzh[i]);
	}
	cout<<ans;
	return 0;
} 
2024/1/29 21:26
加载中...