Cod sursa(job #949584)

Utilizator vlady1997Vlad Bucur vlady1997 Data 14 mai 2013 11:51:49
Problema Oo Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
        #include <cstdio>
        using namespace std;
        int a[100001], oo[100001];
        int max (int x, int y)
        {
            if (x>=y) return x;
            else return y;
        }
        int main()
        {
            int n, i, k, rez=0;
            freopen("oo.in","r",stdin);
            freopen("oo.out","w",stdout);
            scanf("%d",&n);
            for (i=0; i<n; i++) scanf("%d",&oo[i]);
            if (n==2) rez=oo[0]+oo[1];
            else
            {
                for (k=0; k<3; k=(k+1)%n)
                {
                    a[k]=0; a[(k+1)%n]=0;
                    a[(k+2)%n]=oo[(k+1)%n]+oo[(k+2)%n];
                    for (i=(k+3)%n; i!=k; i=(i+1)%n)
                    {
                        a[i]=max(a[(i-1+n)%n],a[(i-3+n)%n]+oo[(i-1+n)%n]+oo[i]);
                        rez=max(rez,a[(k-1+n)%n]);
                    }
                }
            }
            printf("%d",rez);
            fclose(stdin);
            fclose(stdout);
            return 0;
        }