Pagini recente » Cod sursa (job #2109742) | Cod sursa (job #2835306) | Cod sursa (job #592117) | Cod sursa (job #1957059) | Cod sursa (job #2044212)
#include <iostream>
#include <fstream>
#define dm 100001
using namespace std;
ifstream fin("oo.in");
ofstream fout("oo.out");
int v[dm], dp[dm];
int maxx=-1;
void dinamicadubioasa(int x, int y)
{
dp[x] = v[x] + v[x + 1];
dp[x + 1] = max(dp[x], v[x + 1] + v[x + 2]);
dp[x + 2] = max(dp[x + 1], v[x + 2] + v[x + 3]);
for(int i = x + 3; i < y ; i++)
dp[i]=max(dp[i-1], dp[i-3]+v[i]+v[i+1]);
if(dp[y-1] > maxx)
maxx=dp[y-1];
}
int main()
{
int n;
fin >> n;
for(int i = 1; i <= n; i++)
fin >> v[i];
dinamicadubioasa(1, n-1);
dinamicadubioasa(2, n);
fout << maxx;
return 0;
}