Pagini recente » Cod sursa (job #1080667) | Cod sursa (job #1540545) | Cod sursa (job #1356951) | Cod sursa (job #58481)
Cod sursa(job #58481)
#include <cstdio>
#include <algorithm>
using namespace std;
int v[100100];
int x[100100];
int main()
{
freopen("oo.in","r",stdin);
freopen("oo.out","w",stdout);
int n,i,max,tmp, sol = 0, fs = 1;
scanf("%d", &n);
for(i=1;i<=n;++i)
scanf("%d", v+i);
#define calc1 \
max = 0; \
x[fs+1] = v[fs] + v[fs+1]; \
x[fs+2] = v[fs+1] + v[fs+2]; \
for(i=fs+3;i<n;++i) \
{ \
x[i] = max + v[i-1] + v[i]; \
if(x[i-2] > max) \
max = x[i-2]; \
} \
if(max < x[n-1]) \
max = x[n-1]; \
\
if(sol < max) \
sol = max
#define calc2 --fs; v[0] = v[n]; --n; calc1; ++fs; ++n
#define calc3 reverse(v+1,v+n); calc1
calc1;calc2;calc3;
printf("%d\n", sol);
return 0;
}