3 solutions

  • 1
    @ 2026-8-25 16:24:04

    更简80分写法:

    #include<bits/stdc++.h>
    using namespace std;
    long long f[10000010],n,p,s=0,maxs=-2e18;
    int main(){
    	cin>>n>>p;
    	for(int i=1;i<=n;i++){
    		int x;
    		cin>>x;
    		s=max(s,0ll)+x;
    		
    		maxs=max(maxs,s);
    		f[i]=maxs;
    	}
    	long long res=f[1],score=2*f[1];
    	for(int i=2;i<=n;i++){
    		res=max(res,score);
    		score=max(score,f[i]+score);
    	}
    	cout<<res%p;
    }
    
    • @ 2026-8-25 16:24:46
      #include<bits/stdc++.h>
      using namespace std;
      long long f[10000010],n,p,s=0,maxs=-2e18;
      int main(){
      	cin>>n>>p;
      	for(int i=1;i<=n;i++){
      		int x;
      		cin>>x;
      		s=max(s,0ll)+x;
      		maxs=max(maxs,s);
      		f[i]=maxs;
      	}
      	long long res=f[1],score=2*f[1];
      	for(int i=2;i<=n;i++){
      		res=max(res,score);
      		score=max(score,f[i]+score);
      	}
      	cout<<res%p;
      }
      

Information

ID
443
Time
1000ms
Memory
128MiB
Difficulty
8
Tags
# Submissions
28
Accepted
5
Uploaded By