Pagini recente » Cod sursa (job #2471473) | Cod sursa (job #1460308) | Cod sursa (job #1411176) | Cod sursa (job #109355) | Cod sursa (job #2442534)
#include <fstream>
using namespace std;
ifstream cin("oo.in");
ofstream cout("oo.out");
int d[4][100005],v[100005];
int main()
{
int n,i,Max=0;
cin>>n;
for (i=1; i<=n; i++)
{
cin>>v[i];
}
d[1][2]=v[1]+v[2];
d[1][3]=d[1][2];
d[1][4]=d[1][2];
for (i=5; i<=n-1; i++)
{
d[1][i]=max(d[1][i-3]+v[i]+v[i-1],max(d[1][i-2],d[1][i-1]));
}
d[2][n-1]=v[n]+v[n-1];
d[2][n-2]=d[2][n-1];
d[2][n-3]=d[2][n-1];
for (i=n-4; i>=2; i--)
{
d[2][i]=max(d[2][i+3]+v[i]+v[i+1],max(d[2][i+1],d[2][i+2]));
}
d[0][2]=0;
for (i=3; i<=n-1; i++)
{
d[0][i]=max(d[0][i-3]+v[i]+v[i-1],max(d[0][i-2],d[0][i-1]));
}
d[3][1]=v[1]+v[n];
d[3][2]=d[3][1];
d[3][3]=d[3][1];
for (i=4; i<=n-2; i++)
{
d[3][i]=max(d[3][i-3]+v[i-1]+v[i],max(d[3][i-2],d[3][i-1]));
}
for (i=1; i<=n; i++)
{
Max=max(Max,max(d[0][i],max(d[1][i],max(d[2][i],d[3][i]))));
}
cout<<Max;
return 0;
}