有个问题,我没想明白这样做我觉得是对的,但是没有把1和n单独拉出来判断就会wa三个点.单独拿出来就能ac
,但是因为是偶数的原因所以我觉得不用单独判断呀,为什么会错
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cmath>
#include<map>
#include<queue>
#include<set>
#include<stack>
using namespace std;
const int INF=100010;
int a[INF][3],f[INF][4];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=0;j<3;j++)
{
cin>>a[i][j];
}
}
memset(f,0,sizeof(f));
for(int i=1;i<=n;i++)
{
f[i][0]=max(f[i-1][1],f[i-1][3])+a[i][0];
f[i][1]=f[i-1][0]+a[i][1];
f[i][2]=f[i-1][3]+a[i][1];
f[i][3]=max(f[i-1][2],f[i-1][0])+a[i][2];
}
int maxn=0;
for(int i=0;i<4;i++)
{
maxn=max(f[n][i],maxn);
}
cout<<maxn;
}