Pagini recente » Cod sursa (job #498980) | Istoria paginii utilizator/adela_baciu | Istoria paginii utilizator/osztianattila | Profil bizarr3 | Cod sursa (job #164030)
Cod sursa(job #164030)
#include <stdio.h>
#define Nmax 100001
int c[Nmax+100];
#define c (c+10)
int n, i, rez;
int v[Nmax];
inline int max(int x, int y) { return x > y ? x : y; }
inline int max ( int x, int y, int z ) { return max(x,max(y,z)); }
int main()
{
freopen("oo.in", "r", stdin);
scanf("%d ", &n);
for (i=1; i<=n; i++)
scanf("%d ", &v[i]);
fclose(stdin);
c[2] = rez = v[2] + v[1];
for (i = 5; i<n; i++)
{
c[i] = v[i] + v[i-1] + max(c[i-3], c[i-4], max(c[i-5], c[i-6]));
rez = max(rez,c[i]);
}
c[2] = c[5] = 0;
c[3] = v[3] + v[2];
rez = max(rez, c[3]);
for (i = 6; i<=n; i++)
{
c[i] = v[i] + v[i-1] + max(c[i-3], c[i-4], max(c[i-5], c[i-6]));
rez = max(rez, c[i]);
}
c[3] = c[6] = 0;
c[4] = v[4] + v[3];
for (i = 7; i<=n; i++)
{
c[i] = v[i] + v[i-1] + max(c[i-3], c[i-4], max(c[i-5], c[i-6]));
rez = max(rez, c[i]);
}
fprintf(fopen("oo.out", "w"), "%d ", rez);
return 0;
}