AcWing 1056. 股票买卖 III
原题链接
简单
作者:
y总的小迷弟
,
2023-08-05 22:39:54
,
所有人可见
,
阅读 84
#include<bits/stdc++.h>
using namespace std;
int n, ans = 0;
int a[100010];
int f[100010][3][2];
int main()
{
memset(f, -0x3f, sizeof(f));
cin >> n;
for(int i = 1;i <= n;i++)
cin >> a[i];
for(int i = 0;i <= n;i++)
f[i][0][0] = 0;
for(int i = 1;i <= n;i++)
{
for(int j = 1;j <= 2;j++)
{
f[i][j][0] = max(f[i - 1][j][0], f[i - 1][j][1] + a[i]);
f[i][j][1] = max(f[i - 1][j][1], f[i - 1][j - 1][0] - a[i]);
}
}
for(int i = 1;i <= 2;i++)
{
ans = max(ans, f[n][i][0]);
}
cout << ans << endl;
return 0;
}