Cod sursa(job #59923)

Utilizator devilkindSavin Tiberiu devilkind Data 11 mai 2007 10:08:50
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>
#define NMAX 100002

long int a[NMAX],n,i,j,k,b[NMAX];
long int v[NMAX];

void citire()
{
freopen("oo.in","rt",stdin);
freopen("oo.out","wt",stdout);
scanf("%ld",&n);
for (i=1;i<=n;i++)
        {scanf("%ld",&a[i]);
        b[i-1]=a[i-1]+a[i];
        }
b[n]=a[n]+a[1];
}

long int MAXX(long int a, long int b)
{
if (a>b) return a;
return b;
}

void solve()
{
long int max=0;
v[1]=b[1];
v[2]=MAXX(b[1],b[2]);
v[3]=MAXX(b[3],v[2]);
for (i=4;i<=n-2;i++)
        v[i]=MAXX(b[i]+v[i-3],v[i-1]);
max=v[n-2];

v[2]=b[2];
v[3]=MAXX(b[3],v[2]);
v[4]=MAXX(b[4],v[3]);
for (i=5;i<=n-1;i++)
        v[i]=MAXX(b[i]+v[i-3],v[i-1]);
max=MAXX(max,v[n-1]);

v[3]=b[3];
v[4]=MAXX(b[4],v[3]);
v[5]=MAXX(b[5],v[4]);
for (i=6;i<=n;i++)
        v[i]=MAXX(b[i]+v[i-3],v[i-1]);
max=MAXX(max,v[n]);
printf("%ld",max);
}

int main()
{
citire();
solve();
}