求助,WA了三个点
查看原帖
求助,WA了三个点
516836
Carey_chen楼主2021/10/10 11:44

代码如下:

#include <bits/stdc++.h>

using namespace std;

const int maxn = 1e6 + 5;
long long a[maxn], f[maxn], h[maxn], g[maxn], ans, Ans, n, mod;

int main() 
{
	cin >> n >> mod;
	
	f[0] = -1e18;
	ans  = -1e18;
	h[0] = -1e18;
	g[0] = -1e18;
	
	for(int i = 1; i <= n; i++) 
	{
		cin >> a[i];
		
		h[i] = max(h[i - 1] + a[i], a[i]);
		f[i] = max(f[i - 1], h[i]); 
		
		if(i == 1) 
		{
			g[i] = f[i];
		}
		else 
		{
			g[i] = ans;
		}
		if(i < n) 
		{
			ans = max(ans, g[i] + f[i]);
		}
		
		Ans = max(Ans, g[i]);
	}
	
	cout << Ans % mod << endl;

	return 0;
}

评测记录: https://www.luogu.com.cn/record/59551238

2021/10/10 11:44
加载中...