题解A242.小朋友的数字
2025-08-15 21:02:17
发布于:上海
1阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
long long a[1000001]={0};
long long tzz[1000001]={0};
long long fs[1000001]={0};
int main(){
long long n,p;
long long maxx=0,max1=0,ans=-0x3f3f3f3f;
cin>>n>>p;
for(long long i=1;i<=n;++i)
cin>>a[i];
long long area=0,area1=0;
fs[1]=a[1];
for(long long i=1;i<=n;++i){
area+=a[i];
ans=max(area,ans);
if(area<0)
area=0;
tzz[i]=ans;
}
area=0;
ans=fs[1];
long long sum=fs[1]+tzz[1];
long long bj=0;
for(long long i=2;i<=n;++i){
fs[i]=sum;
if(fs[i]+tzz[i]>sum)sum=fs[i]+tzz[i];
if(sum>1000000000){
bj=1;
sum%=p;
}
}
if(bj==0)ans=max(fs[n],fs[1]);
else
ans=fs[n];
cout<<ans%p;
return 0;
}
这里空空如也
有帮助,赞一个