Pagini recente » Istoria paginii runda/oji_sim/clasament | Cod sursa (job #2945291) | Cod sursa (job #1671546) | Cod sursa (job #1664776) | Cod sursa (job #1989816)
#include <fstream>
using namespace std;
ifstream in("oo.in");
ofstream out("oo.out");
const int NMAX=100000;
int v[NMAX + 5],n,maxim,a[NMAX + 5];
void solve(int p, int u)
{
a[p]=v[p]+v[p+1];
a[p+1]=max(a[p],v[p+1]+v[p+2]);
a[p+2]=max(a[p+1],v[p+2]+v[p+3]);
for (int i = p+3; i < u; ++i)
a[i]=max(a[i-1],a[i-3]+v[i]+v[i+1]);
if (a[u-1] > maxim)
maxim=a[u-1];
}
int main()
{
in >> n;
for (int i = 1; i <= n; ++i)
in >> v[i];
v[0]=v[n];
solve(1,n-1);
solve(2,n);
solve(0,n-2);
out << maxim;
out<<'\n';
in.close();
out.close();
return 0;
}