Cod sursa(job #681091)
Utilizator | Data | 16 februarie 2012 15:31:35 | |
---|---|---|---|
Problema | Oo | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include<iostream>
#include<fstream>
using namespace std;
int a[100005],v[100005],sol;
int max(int a, int b)
{
if (a>b)
return a;
return b;
}
void rez(int s, int f)
{
int i;
v[s-2]=0;
v[s-1]=a[s-1]+a[s-2];
for (i=s; i<=f; i++)
{
v[i]=max(v[i-1], v[i-3]+a[i]+a[i-1]);
sol=max (s, v[i]);
}
}
int main(void)
{
int n,i;
fstream f,g;
f.open("oo.in",ios::in);
g.open("oo.out",ios::out);
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<<sol;
}