Cod sursa(job #2510851)

Utilizator OctavianVasileVasileOctavian OctavianVasile Data 17 decembrie 2019 17:02:41
Problema Oo Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
#define NMAX 100003
int n, v [NMAX], dp [NMAX][3];
int main (){
	fin >> n;
	for (int i = 1; i <= n; i ++)
		fin >> v [i];
	v [n + 1] = v [1];
	v [n + 2] = v [2];
	dp [2][0] = v [1] + v [2];
	dp [3][1] = v [2] + v [3];
	dp [4][2] = v [3] + v [4];
	for (int i = 3; i < n; i ++)
		dp [i][0] = max (dp [i - 1][0], dp [i - 3][0] + v [i] + v [i - 1]);
	for (int i = 4; i <= n; i ++)
		dp [i][1] = max (dp [i - 1][1], dp [i - 3][1] + v [i] + v [i - 1]);
	for (int i = 5; i <= n + 1; i ++)
		dp [i][2] = max (dp [i - 1][2], dp [i - 3][2] + v [i] + v [i - 1]);
	fout << max (dp [n - 1][0], max (dp [n][1], dp [n + 1][2]));
	return 0;
}