Cod sursa(job #186868)

Utilizator MirageRobert Sandu Mirage Data 28 aprilie 2008 21:20:19
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
#define max(a,b) a>b?a:b
#define N 100001
int n,v[N],a[N],x;
void din1 () {
	for(int i=3;i<=n;++i)
        a[i]=max(a[i-1],v[i]+v[i-1]+a[i-3]);
    x=a[n];
}
void din2 () {
	a[2]=a[3]=a[4]=v[1]+v[2];
    for(int i=5;i<n;++i)
        a[i]=max(a[i-1],v[i]+v[i-1]+a[i-3]);
    x=max(x,a[n-1]);
}
void din3 () {
	a[1]=a[2]=a[3]=v[1]+v[n];
    for(int i=4;i<n-1;++i)
        a[i]=max(a[i-1],v[i]+v[i-1]+a[i-3]);
    x=max(x,a[n-2]);
}
int main(){
    freopen("oo.in", "rt", stdin);
    freopen("oo.out", "wt", stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;++i)
		scanf("%d",&v[i]);
	din1();
	din2();
	din3();
	printf("%d\n",x);
    return 0;
}