Pagini recente » Cod sursa (job #58490) | Cod sursa (job #232954) | Cod sursa (job #2330030) | Cod sursa (job #793197) | Cod sursa (job #2388379)
#include <fstream>
using namespace std;
ifstream f("oo.in");
ofstream g("oo.out");
int n,i,v[100001],D[100001],sol;
int main()
{
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
//acum incerc sa le iau pe primele 2;
D[1]=0; D[2]=v[1]+v[2]; D[3]=D[2];
for(i=4;i<n;i++)
D[i]=max(D[i-1],D[i-3]+v[i-1]+v[i]);
sol=D[n-1];
//il iau pe ultimul
D[1]=D[2]=0;
D[3]=v[2]+v[3];
for(i=4;i<=n;i++)
D[i]=max(D[i-1],D[i-3]+v[i-1]+v[i]);
sol=max(sol,D[n]);
//primul si ultimul
D[1]=D[2]=D[3]=0;
for(i=4;i<n-1;i++)
D[i]=max(D[i-1],D[i-3]+v[i-1]+v[i]);
sol=max(sol, D[n-2]+v[1]+v[n]);
g<<sol;
return 0;
}