Cod sursa(job #800083)

Utilizator matei_cChristescu Matei matei_c Data 20 octombrie 2012 18:23:54
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std ;

#define maxn 100005

int n ;
int v[maxn],sol[maxn] ;
int rasp ;

void solve(int first,int last)
{
	
	sol[first-2] = 0 ;
	sol[first-1] = v[first-2] + v[first-1] ;
	
	for(int i=first;i<=last;++i)
	{
		sol[i] = max ( sol[i-1] , sol[i-3] + v[i-1] + v[i] ) ;
		rasp = max ( sol[i] , rasp ) ;
	}
	
}

int main()
{
	
	freopen("oo.in","r",stdin);
	freopen("oo.out","w",stdout);
	
	scanf("%d",&n);
	for(int i=1;i<=n;++i)
		scanf("%d",&v[i]);
	
	v[n+1] = v[1] ;
	
	solve ( 3 , n-1 ) ;
	
	solve ( 4 , n ) ;
	
	solve ( 5 , n+1 ) ;
	
	
	printf("%d\n",rasp);
	
	return 0;

}