Cod sursa(job #672735)
| Utilizator | Data | 2 februarie 2012 23:22:21 | |
|---|---|---|---|
| Problema | Oo | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("oo.in");
ofstream g("oo.out");
int n,a[100000],v[100000],s;
int max(int c, int d)
{
if(c>d) return c;
else
return d;
}
void rez(int x, int y)
{
v[x-2]=0;
v[x-1]=a[x-1]+a[x-2];
for(int i=x;i<=y;i++)
{
v[i]=max(v[i-1], v[i-3]+a[i]+a[i-1]);
s=max(s,v[i]);
}
}
int main()
{
int i;
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
a[n+1]=a[1];
rez(3,n-1);
rez(4,n);
rez(5,n+1);
g<<s;
}