Pagini recente » Cod sursa (job #2072383) | Statistici Paunescu Adrian (salazar11) | Cod sursa (job #2667271) | Cod sursa (job #1189326) | Cod sursa (job #303747)
Cod sursa(job #303747)
#include <stdio.h>
int n,oo[200000],i,j,k;
long a[200000],rez;
long max(long a, long b)
{
if (a>b) return a;
else return b;
}
int main()
{
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
scanf("%d",&n);
for (i=0; i<n; ++i)
scanf("%d",&oo[i]);
if (n==2) rez=oo[0]+oo[1];
else
for (k=0; k<2; k=(k+1)%n)
{
a[k]=0;
a[(k+1)%n]=0;
a[(k+2)%n]=oo[(k+1)%n]+oo[(k+2)%n];
for (i=(k+3)%n; i!=k; i=(i+1)%n)
a[i]=max(a[(i-1+n)%n],a[(i-3+n)%n]+oo[(i-1+n)%n]+oo[i]);
rez=max(rez,a[(k-1+n)%n]);
}
printf("%ld\n",rez);
fclose(stdin); fclose(stdout);
return 0;
}