Pagini recente » Cod sursa (job #964900) | Cod sursa (job #906782) | Cod sursa (job #852678) | Cod sursa (job #2773038) | Cod sursa (job #2101272)
#include <fstream>
using namespace std;
int n,i,maxim=-1;
int v[100001],dp[1000001];
ifstream fi("oo.in");
ofstream fo("oo.out");
void oo (int a, int b)
{
dp[a+1]=v[a]+v[a+1];
dp[a]=0;
dp[a-1]=0;
for (i=a+2;i<=b;i++) {
if (dp[i-3]+v[i]+v[i-1]>dp[i-1]) {
dp[i]=dp[i-3]+v[i]+v[i-1];
}
else {
dp[i]=dp[i-1];
}
}
}
int main()
{
fi>>n;
for(i=1;i<=n;i++)
fi>>v[i];
oo(1,n-1);
maxim=max(maxim,dp[n-1]);
oo(2,n);
maxim=max(maxim,dp[n]);
oo(2,n-1);
maxim=max(maxim,dp[n-1]);
oo(3,n-2);
maxim=max(maxim,dp[n-2]+v[1]+v[n]);
fo<<maxim;
}