Cod sursa(job #557066)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 16 martie 2011 14:02:10
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>
#define maxN 100007

FILE*f=fopen("oo.in","r");
FILE*g=fopen("oo.out","w");

int N,i,A[maxN],Sol,D[maxN];

void solve( int p ,int u ){
	D[p-1] = A[p-2] + A[p-1];
	D[p-2] = 0;
	
	for ( int i = p ; i <= u ; ++i ){
		D[i] =  D[i-1] > D[i-3] + A[i] + A[i-1] ? D[i-1] : D[i-3] + A[i] + A[i-1];
	}
	if ( D[u] > Sol )
		Sol = D[u];
}

int main () {
	fscanf(f,"%d",&N);
	for ( i = 1 ; i <= N ; ++i ){
		fscanf(f,"%d",&A[i]);
	}
	A[N+1] = A[1];
	
	solve(3,N-1);
	solve(4,N);
	solve(5,N+1);
	
	fprintf(g,"%d\n",Sol);
	
	fclose(f);
	fclose(g);
	
	return 0;
}