90pts,求调!
查看原帖
90pts,求调!
976569
Zhang1024楼主2024/10/4 21:05
#include<bits/stdc++.h>
#define x first
#define y second
#define PII pair<int,int>
#define PLL pair<long long,long long>
#define REP(i,a,b) for(int i=a;i<=b;i++)
#define PER(i,a,b) for(int i=b;i>=a;i--)
#define int __int128
using namespace std;
const int N=1e6+5;
int n,p,a[N],ans=LONG_MIN,dp[N],b[N],s;
int read(){
    char ch;
    int x=0;
    bool flag=0;
    while(ch=getchar(),!isdigit(ch))
        if(ch=='-')flag=1;
    while(isdigit(ch)){
        x=x*10+ch-'0';
        ch=getchar();
    }
    if(flag)x=-x;
    return x;
}
void write(int x){
    if(x<0){
        putchar('-');
        x=-x;
    }
    if(x>9)write(x/10);
    putchar(x%10+'0');
}
signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    n=read(),p=read();
    for(int i=1;i<=n;i++){
        a[i]=read();   if(i==1)dp[i]=a[i];
        else dp[i]=max(dp[i-1]+a[i],a[i]);
    }ans=s=b[1]=dp[1];
    for(int i=2;i<=n;i++){
        b[i]=s+b[i-1];
        s=max(s,dp[i]);
        ans=max(ans,b[i]);
    }
    write(ans%p);
}
2024/10/4 21:05
加载中...