Pagini recente » Cod sursa (job #1891336) | Cod sursa (job #1787643) | Cod sursa (job #1714708) | Cod sursa (job #328836) | Cod sursa (job #137032)
Cod sursa(job #137032)
#include<stdio.h>
#define DIM 100010
void citire();
void rezolvare();
int a[DIM],n,w[DIM];
int main(void)
{
freopen("oo.in", "r", stdin);
freopen("oo.out", "w", stdout);
citire();
rezolvare();
return 0;
}
void citire()
{
int i;
scanf("%d ",&n);
for(i=0;i<n;i++)
scanf("%d ",a[i]);
}
void rezolvare()
{
int i,ka,max;
max=0;
if(n==2){
printf("%d\n",a[0]+a[1]);
return;
}
w[0]=0;
for(i=3;i<=n;i++){
w[i] = w[i-1];
ka = w[i-3];
if(w[i]<ka+a[i-1]+a[i-2])
w[i]=ka+a[i-1]+a[i-2];
}
if(w[n]>max)
max=w[n];
w[0] = 0;
for(i = 2; i < n; i++){
w[i]=w[i-1];
if(i==2)
ka=0;
else ka=w[i-3];
if(w[i]<ka+a[i-1]+a[i-2])
w[i]=ka+a[i-1]+a[i-2];
}
if(w[n-1]>max) max=w[n-1];
w[1]=a[0]+a[n-1];
for(i=4;i<n-1;i++){
w[i]=w[i-1];
ka=w[i-3];
if(w[i]<ka+a[i-1]+a[i-2])
w[i]=ka+a[i-1]+a[i-2];
}
if(w[n-2]>max)
max=w[n-2];
printf("%d\n",max);
}