Pagini recente » Monitorul de evaluare | Cod sursa (job #706324) | Borderou de evaluare (job #1079859) | Rezultatele filtrării | Cod sursa (job #129486)
Cod sursa(job #129486)
#include<stdio.h>
long n, oo[122000], r1, r2, r3;
long a[122000], rez;
long max(long x,long y)
{
return x>y?x:y;
}
int main()
{
long i;
freopen("oo.in","r",stdin);
scanf("%ld",&n);
for (i = 1; i <= n; i++) scanf("%ld",oo+i);
if (n == 2) rez = oo[0] + oo[1];
else
{
a[2] = oo[1] + oo[2];
for (i = 3; i <= n; i++)
a[i] = max(a[i-1], oo[i] + oo[i-1] + a[i-3]);
r1 = a[n - 1];
for (i = 0 ; i <= n; i++) a[i] = 0;
for (i = 3; i <= n; i++)
a[i] = max(a[i-1], oo[i] + oo[i-1] + a[i-3]);
r2 = a[n];
for (i = 0 ; i <= n; i++) a[i] = 0;
a[1] = a[2] = oo[1] + oo[n];
for (i = 3; i < n - 1; i++)
a[i] = max(a[i-1], oo[i] + oo[i-1] + a[i-3]);
r3 = a[n - 2];
rez = max(max(r1,r2),r3);
}
freopen("oo.out","w",stdout);
printf("%ld\n",rez);
return 0;
}