Pagini recente » Cod sursa (job #1165734) | Cod sursa (job #2293929) | Cod sursa (job #552954) | Monitorul de evaluare | Cod sursa (job #1340223)
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int d[100005],n,i,a[100005],maxy;
void dinamik(int x,int y)
{
int i;
d[x]=0;
d[x+1]=a[x]+a[x+1];
for (i=x+2; i<=y; i++)
{
d[i]=max(d[i-1],d[i-3]+a[i]+a[i-1]);
}
maxy=max(maxy,d[y]);
//memset(d,0,sizeof(d));
return ;
}
int main()
{
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
scanf("%d\n",&n);
for (i=1; i<=n; i++)
scanf("%d ",&a[i]);
a[0]=a[n];
a[n+1]=a[1];
dinamik(1,n-1);
dinamik(2,n);
dinamik(3,n+1);
printf("%d\n",maxy);
}