状态机模型
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int w[N],f[N][3];
//0:无股票 1:有股票 2:冷冻期
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++)cin>>w[i];
memset(f,-0x3f,sizeof f);
f[0][0]=0;
for(int i=1;i<=n;i++){
f[i][0]=max(f[i-1][0],f[i-1][2]);
f[i][1]=max(f[i-1][1],f[i-1][0]-w[i-1]);
f[i][2]=max(f[i-1][2],f[i-1][1]+w[i-1]);
}
cout<<max(f[n][0],f[n][2]);
return 0;
}
网友评论