Pagini recente » Cod sursa (job #2840848) | Cod sursa (job #2223987) | Cod sursa (job #2223981) | Cod sursa (job #993522) | Cod sursa (job #1541050)
#include <fstream>
using namespace std;
int n,a[100003];
int d1[100003];
int d2[100003];
int d3[100003];
inline void Citire()
{
int i;
ifstream fin("oo.in");
fin>>n;
for(i=1;i<=n;++i)
fin>>a[i];
fin.close();
}
inline void Solutie()
{
int i,sol;
//1
d1[2]=a[1]+a[2];
//2
d2[1]=a[1] + a[n];
d2[4]=a[4] + a[3]+d2[1];
//3
d3[3]=a[3] + a[2] + d3[n];
d3[4]=a[4] + a[3] + d3[n];
d3[n]=a[n] + a[n-1];
for(i=5;i<n;i++)
d1[i]=a[i]+a[i-1] + max(d1[i-3],max(d1[i-4],d1[i-5]));
for(i=5;i<n-1;i++)
d2[i]=a[i]+a[i-1] + max(d2[i-3],max(d2[i-4],d2[i-5]));
for(i=5;i<n-2;i++)
d3[i]=a[i] + a[i-1] + max(d3[i-3],max(d3[i-4],d3[i-5]));
i=n;
sol=0;
while(i>=n-5 && i>=0)
{sol=max(sol,max(d1[i],max(d2[i],d3[i]))); i--;}
ofstream fout("oo.out");
fout<<sol<<"\n";
fout.close();
}
int main()
{
Citire();
Solutie();
return 0;
}