Cod sursa(job #389746)

Utilizator alexandru.mMardare Alexandru-Gabriel alexandru.m Data 2 februarie 2010 10:53:59
Problema Oo Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<fstream>

using namespace std;

int n, a[100001], c[100001], maxim;

void ReadData()
{
	int i;
	ifstream fin("oo.in");
	fin>>n;
	for(i=0; i<n; i++)
		fin>>a[i];
	fin.close();
}

inline int Maxim2(int x, int y)
{
	if(x>y)
		return x;
	return y;
}

void Solve()
{
	int i, k;
	c[0] = 0;
	c[1] = a[0]+a[1];
	c[2] = c[1];
	c[3] = c[1];
	for(i=4; i<n-1; i++)
	{	
		k = a[i]+a[i-1]+c[i-3];
		c[i] = Maxim2(k, c[i-1]);
	}	
	maxim = c[n-2];
	
	c[0] = 0;
	c[1] = 0;
	c[2] = a[2]+a[1];
	c[3] = c[2];
	c[4] = c[3];
	for(i=5; i<n; i++)
	{	
		k = a[i]+a[i-1]+c[i-3];
		c[i] = Maxim2(k, c[n-1]);
	}	
	maxim = Maxim2(maxim, c[n-1]);
	
	c[0] = a[0]+a[n-1];
	c[1] = c[0];
	c[2] = c[1];
	for(i=3; i<=n-3; i++)
	{	
		k = a[i]+a[i-1]+c[i-3];
		c[i] = Maxim2(k, c[i-1]);
	}	
	maxim = Maxim2(maxim, c[n-3]);
}

int main()
{	
	ReadData();
	Solve();
	ofstream fout("oo.out");
	fout<<maxim<<"\n";		
	fout.close();
	return 0;
}