Cod sursa(job #464257)

Utilizator darrenRares Buhai darren Data 19 iunie 2010 15:10:12
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<fstream>
#include<algorithm>
using namespace std;

int n, a[100016], mn[3][3][100016], mx;
int main()
{
	ifstream fin("oo.in");
	ofstream fout("oo.out");
	fin >> n;
	for (int i = 1; i <= n; ++i)
		fin >> a[i];
	a[0] = a[n];
	
	for (int k = 0; k < 3; ++k)
	{
		for (int i = k; i <= n - (3 - k); ++i)
		{
			mn[k][0][i] = max(mn[k][0][i - 1], mn[k][2][i - 1]); 
			mn[k][1][i] = mn[k][0][i - 1] + a[i] + a[i + 1];
			mn[k][2][i] = mn[k][1][i - 1];
			
			mx = max(mx, mn[k][0][i]);
			mx = max(mx, mn[k][1][i]);
			mx = max(mx, mn[k][2][i]);
		}
	}
	
	fout << mx;
}