Cod sursa(job #551440)

Utilizator paul992Cirstean Paul paul992 Data 10 martie 2011 19:38:11
Problema Oo Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>
int n,v[100001],best[100001],sol;

int max(int a,int b)
{
if(a>=b)
	return a;
else
	return b;
}

void read()
{scanf("%d ",&n);
for(int i=1;i<=n;i++)
	scanf("%d ",&v[i]);
v[n+1]=v[1];
}

void solve(int l,int r)
{
best[l]=0;
best[l-1]=v[l-2]+v[l-1];
for(int i=l;i<=r;i++)
{
best[i]=max(best[i-1],best[i-3]+v[i-1]+v[i]);
if(best[i]>sol)
	sol=best[i];
}
}

void print()
{
printf("%d ",sol);
}


int main()
{
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
read();
solve(3,n-1);
solve(4,n);
solve(5,n+1);
print();
return 0;
}