40pts求助,悬赏一关
查看原帖
40pts求助,悬赏一关
550933
Tjaweiof楼主2023/10/10 13:19

RT

#include <bits/stdc++.h>
using namespace std;
long long n, p, shu[1000001], te[1000001], fen[1000001], dp[1000001][2], maxn = -9223372036854775808, ans = -9223372036854775808;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin >> n >> p;
	te[0] = 0;
	for (long long i = 1; i <= n; i++){
		cin >> shu[i];
		maxn = max(maxn, shu[i]);
		dp[i][0] = te[i - 1];
		dp[i][1] = dp[i - 1][1] + shu[i];
		te[i] = max(dp[i][0], dp[i][1]);
		if (!te[i]){
			te[i] = maxn;
		}
	}
	fen[1] = te[1];
	maxn = fen[1] << 1;
	ans = max(ans, fen[1]);
	for (long long i = 2; i <= n; i++){
		fen[i] = maxn;
		maxn = max(maxn, fen[i] + te[i]);
		ans = max(ans, fen[i]);
	}
	cout << ans % p;
    return 0;
}
2023/10/10 13:19
加载中...