Pagini recente » Cod sursa (job #268489) | Cod sursa (job #679831) | Cod sursa (job #837258) | Cod sursa (job #3137607) | Cod sursa (job #3265263)
#include <iostream>
#include <fstream>
using namespace std;
int v[100005];
int s1[100005];
int s2[100005];
int s3[100005];
int s4[100005];
int main()
{
ifstream cin("oo.in");
ofstream cout("oo.out");
int n;
cin>>n;
for(int i=1;i<=n;++i)
{
cin>>v[i];
}
int max=0;
if((v[1]+v[2])>max)
{
max=v[1]+v[2];
}
if((v[2]+v[3])>max)
{
max=v[2]+v[3];
}
if((v[1]+v[n])>max)
{
max=v[1]+v[n];
}
if((v[n]+v[n-1])>max)
{
max=v[n]+v[n-1];
}
for(int i=5;i<n;++i)
{
s1[i]=v[i]+v[i-1]+s1[i-3];
if(s1[i-1]>s1[i])
{
s1[i]=s1[i-1];
}
if((s1[i]+v[1]+v[2])>max)
{
max=(s1[i]+v[1]+v[2]);
}
}
for(int i=3;i<=(n-3);++i)
{
s2[i]=v[i]+v[i-1]+s2[i-3];
if(s2[i-1]>s2[i])
{
s2[i]=s2[i-1];
}
//cout<<s2[i]<<" ";
if((s2[i]+v[n-1]+v[n])>max)
{
max=(s2[i]+v[n-1]+v[n]);
}
}
for(int i=4;i<=(n-2);++i)
{
s3[i]=v[i]+v[i-1]+s3[i-3];
if(s3[i-1]>s3[i])
{
s3[i]=s3[i-1];
}
if((s3[i]+v[1]+v[n])>max)
{
max=(s3[i]+v[1]+v[n]);
}
}
for(int i=6;i<=n;++i)
{
s4[i]=v[i]+v[i-1]+s4[i-3];
if(s4[i-1]>s4[i])
{
s4[i]=s4[i-1];
}
if((s4[i]+v[2]+v[3])>max)
{
max=(s4[i]+v[2]+v[3]);
}
}
cout<<max<<" ";
return 0;
}