求调
查看原帖
求调
482610
Mortidesperatslav楼主2023/8/30 14:49

60pts WA

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,mod,ans=INT_MAX,qz[114514];
set<int>s;
signed main(){
	cin>>n>>m>>mod;
	qz[0]=0;
	s.insert(0);
	for(register int i=1;i<=n;i++){
	    int x;
	    cin>>x;
	    x%=mod;
	    qz[i]=(qz[i-1]+x)%mod;
	}
	for(register int i=1;i<=n;i++){
		if(qz[i]>=m)ans=min(ans,qz[i]-(*--(s.upper_bound(qz[i]-m))));
		else ans=min(ans,qz[i]+mod-(*--(s.upper_bound(qz[i]-m+mod))));
		s.insert(qz[i]);
	}
	cout<<ans;
}
2023/8/30 14:49
加载中...