Pagini recente » Cod sursa (job #1287610) | Cod sursa (job #2876915) | Cod sursa (job #578194) | Cod sursa (job #1019419) | Cod sursa (job #349026)
Cod sursa(job #349026)
#include<fstream>
using namespace std;
int maxim(int a,int b)
{if(a<b) return b;
return a;
}
int main()
{ifstream in("oo.in");
ofstream out("oo.out");
int n,a[100003],best[100003],res;
in>>n;
for(int i=1;i<=n;i++) in>>a[i];
best[1]=a[1]+a[2];
best[2]=best[1];
best[3]=best[1];
best[4]=best[1];
for(int i=5;i<n;i++)
best[i]=maxim(best[i-1],a[i]+a[i-1]+best[i-3]);
res=best[n-1];
best[2]=a[2]+a[3];
best[3]=a[2]+a[3];
best[4]=a[2]+a[3];
best[5]=a[2]+a[3];
for(int i=6;i<=n;i++)
best[i]=maxim(best[i-1],a[i]+a[i-1]+best[i-3]);
res=maxim(res,best[n]);
best[1]=a[1]+a[n];
best[2]=a[1]+a[n];
best[3]=a[1]+a[n];
for(int i=4;i<n-1;i++)
best[i]=maxim(best[i-1],best[i-3]+a[i]+a[i-1]);
res=maxim(res,best[n-2]);
out<<res;
return 0;}