Pagini recente » Cod sursa (job #467761) | Cod sursa (job #21987) | Cod sursa (job #1358924) | Cod sursa (job #2187339) | Cod sursa (job #3199084)
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
int main()
{
int v[100001], d[100001], maxim=INT_MIN;
int n;
fin >> n;
for (int i=1; i<=n; ++i){
fin >> v[i];
}
d[1]=0;
d[2]=v[2]+v[1];
for (int i=3; i<=n-1; ++i){
d[i]=max(d[i-3]+v[i]+v[i-1], d[i-1]);
}
if (maxim<d[n-1]){
maxim=d[n-1];
}
d[2]=0;
d[3]=v[3]+v[2];
for (int i=4; i<=n; ++i){
d[i]=max(d[i-3]+v[i]+v[i-1], d[i-1]);
}
if (maxim<d[n]){
maxim=d[n];
}
d[3]=0;
d[4]=v[4]+v[3];
v[n+1]=v[1];
for (int i=5; i<=n+1; ++i){
d[i]=max(d[i-3]+v[i]+v[i-1], d[i-1]);
}
if (maxim<d[n+1]){
maxim=d[n+1];
}
fout << maxim;
return 0;
}