0分求助
查看原帖
0分求助
1025321
midsummer_zyl楼主2023/10/1 17:08

rt

#include <bits/stdc++.h>
using namespace std;
const int N = 1e6;
long long n, a[N], b[N], c[N], d[N];
long long solve(long long x) {
	long long maxn = INT_MAX;
	for (int j = 1; j <= x; j++) {
		if(j == 1) b[j] = a[j];
		else b[j] = max(a[j], b[j - 1] + a[j]);
		maxn = max(maxn, b[j]);
	}
	return maxn;
}
int main() {
	long long p, ans = INT_MIN;
	cin >> n >> p;
	for (int i = 1; i <= n; i++)
		cin >> a[i];
	for (int i = 1; i <= n; i++)
		c[i] = solve(i);
	d[1] = c[1];
	for (int i = 2; i <= n; i++) {
		long long maxn = INT_MIN;
		for (int j = 1; j < i; j++)
			maxn = max(a[i] + c[i], maxn);
		d[i] = maxn;
	}
	for (int i = 1; i <= n; i++) 
		ans = max(ans, d[i]);
	cout << ans % p;
	return 0;
}
2023/10/1 17:08
加载中...