Cod sursa(job #771860)

Utilizator SteveStefan Eniceicu Steve Data 27 iulie 2012 12:42:01
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>

using namespace std;

int N;
int v[100010];
int dp[100010];

void Citire () {
	ifstream fin ("oo.in");
	fin >> N;
	for (int i = 1; i <= N; i++)
		fin >> v[i];
	v[N + 1] = v[1];
	fin.close ();
}

int Business () {
	int lol = 0;
	dp[1] = 0;
	dp[2] = v[2] + v[1];
	for (int i = 3; i < N; i++)
	{
		dp[i] = max (dp[i - 1], dp[i - 3] + v[i] + v[i - 1]);
	}
	lol = max (lol, dp[N - 1]);
	dp[2] = 0;
	dp[3] = v[3] + v[2];
	for (int i = 4; i <= N; i++)
	{
		dp[i] = max (dp[i - 1], dp[i - 3] + v[i] + v[i - 1]);
	}
	lol = max (lol, dp[N]);
	dp[3] = 0;
	dp[4] = v[3] + v[4];
	for (int i = 5; i <= N + 1; i++)
	{
		dp[i] = max (dp[i - 1], dp[i - 3] + v[i] + v[i - 1]);
	}
	lol = max (lol, dp[N + 1]);
	return lol;
}

void Scriere () {
	ofstream fout ("oo.out");
	fout << Business ();
	fout.close ();
}

int main () {
	Citire ();
	Scriere ();
	return 0;
}