0
点赞
收藏
分享

微信扫一扫

Codeforces 1343 C. Alternating Subsequence

树下的老石头 2023-02-03 阅读 86


Codeforces 1343 C. Alternating Subsequence_i++

题意:

给出一个序列,找到一个循环序列使得他们的和最大。

把每段连续的奇偶分段找出每一段的最大值相加即可。

AC代码:

const int N = 2e5 + 10;
int n, m, x;
ll ans, sum, res;
int a[N];
int main()
{
int t;
sd(t);
while (t--)
{
sd(n);
rep(i, 1, n)
sd(a[i]);
ans = 0;
rep(i, 1, n)
{
x = a[i];
i++;
while (i <= n && ((x < 0 && a[i] < 0) || (x > 0 && a[i] > 0)))
{
x = max(x, a[i]);
i++;
}
ans += x;
i--;
}
pld(ans);
}
return 0;
}


举报

相关推荐

0 条评论