Cod sursa(job #35215)

Utilizator victorsbVictor Rusu victorsb Data 21 martie 2007 22:05:41
Problema Oo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>

#define Nmax 100050
#define max(a,b) ((a) >= (b) ? (a) : (b))

int n, sol;
int sir[Nmax], d[Nmax];

void citire()
{
    int i;
    
    scanf("%d\n", &n);
    for (i = 1; i <= n; ++i)
        scanf("%d ", &sir[i]);
    
    for (i = n + 1; i <= n + 4; ++i)
        sir[i] = sir[i - n];
}

void solve()
{
    int i, k;
    
    for (k = 1; k <= 4; ++k)
    {
        for (i = 4; i <= n; ++i)
            d[i] = max(d[i - 1], d[i - 4] + sir[i - 2] + sir[i - 3]);
        if (sol < d[n])
            sol = d[n];
        
        for (i = 1; i <= n + 3; ++i)
            sir[i] = sir[i + 1];
    }

    printf("%d\n", sol);
}

int main()
{
    freopen("oo.in", "r", stdin);
    freopen("oo.out", "w", stdout);
    citire();
    solve();
    return 0;
}