Cod sursa(job #486229)

Utilizator ChallengeMurtaza Alexandru Challenge Data 20 septembrie 2010 19:49:20
Problema Oo Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>

using namespace std;

const char InFile[]="oo.in";
const char OutFile[]="oo.out";
const int MaxN=100010;

ifstream fin(InFile);
ofstream fout(OutFile);

int v[MaxN],best[MaxN],n,val;

int main()
{
	fin>>n;
	for(register int i=1;i<=n;++i)
	{
		fin>>v[i];
	}
	fin.close();

	best[0]=0;
	best[1]=0;
	best[2]=v[1]+v[2];
	for(register int i=3;i<=n-1;++i)
	{
		best[i]=max(best[i-1],v[i]+v[i-1]+best[i-3]);
		val=max(best[i],val);
	}

	best[0]=0;
	best[1]=0;
	best[2]=0;
	for(register int i=3;i<=n-1;++i)
	{
		best[i]=max(best[i-1],v[i]+v[i-1]+best[i-3]);
		val=max(best[i],val);
	}

	best[0]=0;
	best[1]=v[1]+v[n];
	best[2]=max(v[1]+v[2],best[1]);
	for(register int i=3;i<=n-2;++i)
	{
		best[i]=max(best[i-1],v[i]+v[i-1]+best[i-3]);
		val=max(best[i],val);
	}

	fout<<val;
	fout.close();
	return 0;
}