90分代码求助
查看原帖
90分代码求助
565939
hhhsc03楼主2022/8/28 13:06
#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

typedef long long LL;

const int N = 1000010, INF = 0x3f3f3f3f;

int n, p;
LL sum, ans;
LL a[N], s[N], f[N];

int main()
{
    scanf ("%d%d", &n, &p);
    
    for (int i = 1; i <= n; i ++ ) scanf ("%lld", &a[i]);
    
    s[0] = -INF;
    for (int i = 1; i <= n; i ++ )
    {
        sum += a[i];
        s[i] = max(s[i - 1], sum);
        if(sum < 0) sum = 0;
    }
    
    f[1] = s[1] % p;
    f[2] = (s[1] + f[1]) % p;
    
    for (int i = 3; i <= n; i ++ )
    {
        f[i] = max(f[i - 1], f[i - 1] + s[i - 1]) % p;
    }
    
    printf("%lld", f[n] % p);
    
    return 0;
}

谁能帮我看一眼?谢谢各位路过的大佬!

2022/8/28 13:06
加载中...