WA on #6
#include<bits/stdc++.h>
using namespace std;
int n,a[100005],b[100005],c[100005];
int dp[100005][3][2];
int fi[100005][3][2];
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i]>>b[i]>>c[i];
fi[1][0][0]=0;dp[1][0][0]=a[1];
fi[1][1][0]=1;dp[1][1][0]=b[1];
fi[1][2][1]=2;dp[1][2][1]=c[1];
fi[1][1][1]=1;dp[1][1][1]=b[1];
for(int i=2;i<=n;i++)
{
if(dp[i][0][0]<=dp[i-1][1][1]+a[i])
{
dp[i][0][0]=dp[i-1][1][1]+a[i];
fi[i][0][0]=fi[i-1][1][1];
}
if(dp[i][0][0]<=dp[i-1][2][1]+a[i])
{
dp[i][0][0]=dp[i-1][2][1]+a[i];
fi[i][0][0]=fi[i-1][2][1];
}
if(dp[i][1][0]<=dp[i-1][2][1]+b[i])
{
dp[i][1][0]=dp[i-1][2][1]+b[i];
fi[i][1][0]=fi[i-1][2][1];
}
if(dp[i][2][1]<=dp[i-1][0][0]+c[i])
{
dp[i][2][1]=dp[i-1][0][0]+c[i];
fi[i][2][1]=fi[i-1][0][0];
}
if(dp[i][2][1]<=dp[i-1][1][0]+c[i])
{
dp[i][2][1]=dp[i-1][1][0]+c[i];
fi[i][2][1]=fi[i-1][1][0];
}
if(dp[i][2][1]<=dp[i-1][0][0]+c[i])
{
dp[i][2][1]=dp[i-1][0][0]+c[i];
fi[i][2][1]=fi[i-1][0][0];
}
if(dp[i][1][1]<=dp[i-1][0][0]+b[i])
{
dp[i][1][1]=dp[i-1][0][0]+b[i];
fi[i][1][1]=fi[i-1][0][0];
}
}
if(fi[n][0][0]<=0) dp[n][0][0]=0;
if(fi[n][1][0]<=1) dp[n][1][0]=0;
if(fi[n][2][1]>=2) dp[n][2][1]=0;
if(fi[n][1][1]>=1) dp[n][1][1]=0;
cout<<max(max(dp[n][0][0],dp[n][1][0]),max(dp[n][2][1],dp[n][1][1]))<<endl;
return 0;
}