Pagini recente » Cod sursa (job #545288) | Cod sursa (job #2146210) | Cod sursa (job #830795) | Cod sursa (job #1419506) | Cod sursa (job #2612309)
#include <fstream>
using namespace std;
ifstream cin("oo.in");
ofstream cout("oo.out");
const int nmax=100005;
int n;
int v[nmax],d[nmax];
//exista 3 variante prin care putem ajunge la maxim
int dp(int st,int en)
{
d[st]=0;
d[st+1]=v[st]+v[st+1];
for(int i=st+2;i<=en;i++)
d[i]=max(d[i-1],d[i-3]+v[i-1]+v[i]);
return d[n];
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
v[n+1]=v[1];
cout<<max(dp(1,n-1),max(dp(2,n),dp(3,n+1)));
return 0;
}