Cod sursa(job #303726)

Utilizator radu_voroneanuVoroneanu Radu Stefan radu_voroneanu Data 10 aprilie 2009 11:46:59
Problema Oo Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <stdio.h>

int n,i,j,k,rez;
int oo[100000], a[100000];

int max(int x, int y)
{
        if (x>y) return x;
        else return y;
}

int main()
{
        freopen("oo.in","r",stdin);
        freopen("oo.out","w",stdout);
        scanf("%d",&n);
        for (i=0; i<n; ++i)
                scanf("%d",&oo[i]);
        rez=0;
        if (n==2) rez=oo[0]+oo[1];
        else
                for (k=0; k<2; k++)
                {
                        a[(k+1)%n]=a[k]=0;
                        a[(k+2)%n]=oo[(k+1)%n]+oo[(k+2)%n];
                        i=(k+3)%n;
                        while (i!=k)
                        {
                                a[i]=max(a[(i+n-1)%n],a[(i+n-3)%n]+oo[(i+n-1)%n]+oo[i]);
                                i=(i+1)%n;
                        }
                        rez=max(rez,a[(k+n-1)%n]);
                }
        printf("%d",rez);
        fclose(stdin); fclose(stdout);
        return 0;
}