Cod sursa(job #342052)
Utilizator | Dobrota Valentin Eugen vdobrota | Data | 20 august 2009 14:40:26 |
---|---|---|---|
Problema | Oo | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<stdio.h>
#define MAXLE 100011
#define max(a,b) (a)>(b)?(a):(b)
int main()
{
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
long int n,i,v[MAXLE],x[MAXLE],k,j,sol=0;
scanf("%ld",&n);
for(i=1;i<=n;i++)
scanf("%ld",&v[i]);
v[n+1]=v[1];
for(i=1;i<=3;i++) {
for(j=1+i;j<=n-2+i;j++) {
x[j]=v[j]+v[j-1];
for(k=j-3;k>=j-5&&k>i;k--)
x[j]=max(x[j],v[j]+v[j-1]+x[k]);
sol=max(sol,x[j]);
}
}
printf("%ld\n",max(sol,v[1]+v[2]));
return 0;
}