Cod sursa(job #419064)

Utilizator toniobFMI - Barbalau Antonio toniob Data 16 martie 2010 21:37:20
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
using namespace std;

const char IName[]="oo.in";
const char OName[]="oo.out";
const int NMax=100010;
const int AnsMax=1<<30;

ifstream FIn(IName);
ofstream FOut(OName);

int N,V[NMax],Ans=-AnsMax;

inline int MAX(int a,int b){
	return a>b?a:b;
}

void EXE(),IN(),OUT(),PD_GENERARE(int);
int main(){EXE();return 0;}

void EXE(){
	IN();
	if(N==2){
		FOut<<V[4]+V[5]<<"\n";
		return;
	}
	V[2]=V[N+2],V[3]=V[N+3];
	PD_GENERARE(1);PD_GENERARE(2);PD_GENERARE(3);
	OUT();
}

void PD_GENERARE(int x){
	int PD[NMax];
	memset(PD,0,sizeof(PD));
	for(int i=x+2;i<N+x;++i){
		PD[i]=PD[i-1];
		PD[i]=MAX(PD[i],PD[i-3]+V[i]+V[i-1]);
	}
	Ans=MAX(Ans,PD[N+x-1]);
}

void IN(){
	FIn>>N;
	for(int i=4;i<=N+3;FIn>>V[i++]);
}

void OUT(){
	FOut<<Ans<<"\n";
}