Cod sursa(job #296217)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 4 aprilie 2009 14:26:19
Problema Oo Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>
int n,oo[10001];
long v[10001],rez;

long max(long a, long b)
{
	if(a<b)
		a=b;
	return a;
}

void read()
{
	freopen("oo.in","r",stdin);
	freopen("oo.out","w",stdout);
	int i,k;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		scanf("%d",&oo[i]);
	if(n==2)
		rez=oo[1]+oo[2];
	else
	{
		for(k=0;k<2;k=(k+1)%n)
		{
			v[k]=0;
			v[(k+1)%n]=0;
			v[(k+2)%n]=oo[(k+1)%n]+oo[(k+2)%n];
			for(i=(k+3)%n;i!=k;i=(i+1)%n)
				v[i]=max(v[(i-1+n)%n],v[(i-3+n)%n]+oo[(i-1+n)%n]+oo[i]);
			rez=max(rez,v[(k-1+n)%n]);
		}
	}
	printf("%ld\n",rez);
}

int main()
{
	read();
	return 0;
}