Cod sursa(job #533833)

Utilizator bora_marianBora marian bora_marian Data 14 februarie 2011 18:06:53
Problema Oo Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<fstream>
#define DIM 100004
using namespace std;
int v[DIM],best[DIM],n,sol;
void solve();
int inline maxim(int a,int b);
ofstream fout("oo.out");
int main()
{
	ifstream fin("oo.in");
	fin>>n;
	int i;
	for(i=1;i<=n;i++)
	   fin>>v[i];
	//for(i=1;i<=n;i++)
	  // fout<<v[i]<<" ";   
	solve();
	fout<<sol;
	return 0;
}
void solve()
{
	best[2]=v[1]+v[2];
	best[3]=maxim(best[2],v[2]+v[3]);
	int i;
	for(i=4;i<n;i++)
	{
	   best[i]=maxim(best[i-1],best[i-3]+v[i]+v[i-1]);
	   if(best[i]>sol)
	     sol=best[i];
	 }
	// for(i=1;i<=n;i++)
	  // fout<<best[i]<<" ",best[i]=0;
	 best[1]=v[1]+v[n];
	 best[2]=maxim(best[1],v[1]+v[2]);
	 for(i=3;i<n-1;i++)
	 {
		 best[i]=maxim(best[i-1],v[i]+v[i-1]+best[i-3]);
	     if(best[i]>sol)
	       sol=best[i];
	   }
}
int inline maxim(int a,int b)
{
	if(a>b)
	  return a;
	else
	  return b;
}