Pagini recente » Cod sursa (job #368605) | Cod sursa (job #674026) | Cod sursa (job #994118) | Cod sursa (job #2420577) | Cod sursa (job #948471)
Cod sursa(job #948471)
#include <fstream>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream f("oo.in");
ofstream g("oo.out");
int n,i,a[100005],SOL[100005],dnm[100005],sol1,sol2,sol3;
int main()
{
f>>n;
for(i=1;i<=n;i++) f>>a[i];
a[n+1]=a[1];
for(i=1;i<=n;i++) SOL[i]=a[i]+a[i+1];
dnm[1]=dnm[2]=dnm[3]=SOL[1];
for(i=4;i<=n-2;i++) dnm[i]=max(dnm[i-1],dnm[i-3]+SOL[i]);
sol1=dnm[n-2];
memset(dnm,0,sizeof(dnm));
dnm[2]=dnm[3]=dnm[4]=SOL[2];
for(i=5;i<=n-1;i++) dnm[i]=max(dnm[i-1],dnm[i-3]+SOL[i]);
sol2=dnm[n-1];
memset(dnm,0,sizeof(dnm));
dnm[3]=dnm[4]=dnm[5]=SOL[3];
for(i=6;i<=n;i++) dnm[i]=max(dnm[i-1],dnm[i-3]+SOL[i]);
sol3=dnm[n];
g<<max(sol1,max(sol2,sol3));
return 0;
}