Cod sursa(job #186457)

Utilizator razvan2006razvan brezulianu razvan2006 Data 27 aprilie 2008 23:18:35
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>
#define NM 100001
#define Max(a, b) ((a) > (b) ? (a) : (b))

int n, i, j, k, h;
int a[NM], d[NM];
int dmax;

void Shift();

int main()
{
    freopen("oo.in", "r", stdin);
    freopen("oo.out", "w", stdout);
    scanf("%d", &n);
    for ( i = 1; i <= n; i++ )
        scanf("%d ", &a[i]);
        
    for ( h = 1; h <= 6; h++ )
    {
        d[1] = 0;
		d[2] = d[3] = a[1] + a[2];
		for ( i = 4; i < n; i++ )
			d[i] = Max(d[i-1], d[i-3] + a[i] + a[i-1]),
            dmax = Max(dmax, d[i]);
            
        Shift();
    }    
        
    
    printf("%d\n", dmax);
    return 0;
}

void Shift()
{
    k = a[1];
    for ( i = 1; i < n; i++ )
        a[i] = a[i+1];
    a[n] = k;
}