Pagini recente » Cod sursa (job #8885) | Cod sursa (job #271294) | Cod sursa (job #3040370) | Cod sursa (job #1239049) | Cod sursa (job #1979153)
#include <fstream>
#define MAX 100001
using namespace std;
ifstream fi("oo.in");
ofstream fo("oo.out");
int dp[MAX],x[MAX],n,i,rez,maxim,j;
bool primul[MAX];
int main()
{
fi>>n;
for (i=1; i<=n; i++)
fi>>x[i];
dp[1]=x[n-1]+x[n];
dp[2]=x[n]+x[1];
dp[0]=0;
for (i=3; i<=n; i++)
{
maxim=0;
for (j=i-7; j<=i-3; j++)
if (j>=0)
{
if (dp[j]>dp[maxim]&&(primul[j]||i!=n))
maxim=j;
}
dp[i]=dp[maxim]+x[i-2]+x[i-1];
primul[i]=primul[maxim];
}
///determinam dp[n] intr-un mod special
for (i=1; i<=n; i++)
rez=max(rez,dp[i]);
fo<<rez;
fi.close();
fo.close();
return 0;
}