Cod sursa(job #164020)

Utilizator coderninuHasna Robert coderninu Data 23 martie 2008 14:02:11
Problema Oo Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>
#define Nmax 100001

int c[Nmax];

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], c[i-5]);
		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], c[i-5]);
		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], c[i-5]);
		rez = max(rez, c[i]);
	}


	fprintf(fopen("oo.out", "w"), "%d ", rez);
	return 0;
}