Cod sursa(job #2069234)

Utilizator WebDesignbyTMGhiorghiu Ioan-Viorel WebDesignbyTM Data 18 noiembrie 2017 12:37:04
Problema Oo Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#define DM 100001
#include <fstream>
using namespace std;

ifstream fi ("oo.in");
ofstream fo ("oo.out");
int n, dp[DM], v[DM], x[DM], mx;

int main()
{
	fi >> n;
	for (int i = 1; i <= n; ++i)
		fi >> v[i];
	if (n == 2)
	{
		fo << v[1] + v[2];
		return 0;
	}
	if (n == 3)
	{
		fo << max(v[1] + v[2], max(v[2] + v[3], v[3] + v[1]));
		return 0;
	}
	dp[1] = v[1] + v[n], dp[2] = v[2] + v[1];
	dp[3] = max(max(dp[1], dp[2]), v[3] + v[2]);
	mx = max(dp[1], max(dp[2], dp[3]));
	for (int i = 4; i < n - 1; ++i)
		dp[i] = max(dp[i-3] + v[i] + v[i-1], max(dp[i-1], dp[i-2]));
	mx = max(mx, dp[n-2]);
	dp[1] = dp[2] = 0;
	dp[3] = v[3] + v[2];
	for (int i = 4; i <= n; ++i)
		dp[i] = max(dp[i-3] + v[i] + v[i-1], max(dp[i-1], dp[i-2]));
	mx = max(mx, dp[n]);
	fo << mx;
	return 0;
}