Cod sursa(job #2119499)

Utilizator marcudanfDaniel Marcu marcudanf Data 1 februarie 2018 12:35:31
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("oo.in");
ofstream fout("oo.out");

int v[100005];
int dp[100005];
int n, sol;

int main(){
	fin >> n;
	for(int i = 1; i <= n; i++)
		fin >> v[i];
	dp[1] = 0;
	dp[2] = v[1] + v[2];
	dp[3] = 0;
	for(int i = 4; i < n; i++)
		dp[i] = max(dp[i-1], v[i] + v[i-1] + dp[i-3]);
	sol = dp[n-1];
	dp[1] = 0;
	dp[2] = 0;
	dp[3] = v[2] + v[3];
	for(int i = 4; i <= n; i++)
		dp[i] = max(dp[i-1], v[i] + v[i-1] + dp[i-3]);
	sol = max(sol, dp[n]);
	dp[1] = 0;
	dp[2] = 0;
	dp[3] = 0;
	for(int i = 4; i < n - 1; i++)
		dp[i] = max(dp[i-1], v[i] + v[i-1] + dp[i-3]);
	sol = max(sol, dp[n-2] + v[1] + v[n]);
	cout << sol;
	fout << sol;
	return 0;
}