Pagini recente » Cod sursa (job #3173029) | Cod sursa (job #1643488) | Cod sursa (job #2587685) | Cod sursa (job #1964610) | Cod sursa (job #373901)
Cod sursa(job #373901)
#include <stdio.h>
int v[1001],a[1001],s[1001];
int main()
{
int n,i,max;
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
scanf("%d",&n);
for (i=1;i<n+1;i++) scanf("%d",&v[i]);
s[1]=v[n]+v[1];a[3]=2;
s[2]=v[1]+v[2];a[2]=1;
s[3]=v[2]+v[3];
for (i=4;i<n+1;i++)
{
if (i-5>0) {s[i]=s[i-5]+v[i-1]+v[i];a[i]=a[i-5];}
if ((i-4>0)&&(s[i-4]+v[i-1]+v[i]>s[i])&&(i<n-a[i-4])) {s[i]=s[i-4]+v[i-1]+v[i];a[i]=a[i-4];}
else if ((i-4>0)&&(s[i-4]+v[i-1]+v[i]==s[i])&&(a[i-4]>a[i])) {s[i]=s[i-4]+v[i-1]+v[i];a[i]=a[i-4];}
if ((s[i-3]+v[i-1]+v[i]>s[i])&&(i<n-a[i-3])) {s[i]=s[i-4]+v[i-1]+v[i];a[i]=a[i-3];}
else if ((s[i-3]+v[i-1]+v[i]>s[i])&&(a[i-3]>a[i])) {s[i]=s[i-3]+v[i-1]+v[i];a[i]=a[i-3];}
}
max=s[n];
if (s[n-1]>max) max=s[n-1];
if (s[n-2]>max) max=s[n-2];
if (s[n-3]>max) max=s[n-3];
if (s[n-4]>max) max=s[n-4];
if (s[n-5]>max) max=s[n-5];
printf("%d",max);
return 0;
}