Cod sursa(job #557050)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 16 martie 2011 13:56:56
Problema Oo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 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] = D[p-2] = D[p-3] = D[p-4] = 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-4] + 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+3]);
	}
	A[3] = A[N+3]; A[N+4] = A[4];
	
	solve(3,N+2);
	solve(4,N+3);
	solve(5,N+4);
	
	fprintf(g,"%d\n",Sol);
	
	fclose(f);
	fclose(g);
	
	return 0;
}