Codeforces 1359 D. Yet Another Yet Another Task

在這裏插入圖片描述

題意:

給一個的數組,,求連續的一段區間內,求數組元素總和減去區間內數組的最大值的最大值。
確定區間最值爲 kk ,然後找到最大連續子段和求最值即可。

AC代碼:

const int N = 1e6 + 50;
int n, m;
int a[N];

int main()
{
	int T;
	sd(n);
	rep(i, 1, n)
		sd(a[i]);
	int ans = 0;
	rep(k, 1, 30)
	{
		int sum = 0;
		rep(i, 1, n)
		{
			if (a[i] > k)
				continue;
			sum += a[i];
			if (sum < 0)
				sum = 0;
			else
				ans = max(ans, sum - k);
		}
	}
	pd(ans);
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章