Cod sursa(job #949586)

Utilizator j.loves_rockJessica Joanne Patrascu j.loves_rock Data 14 mai 2013 11:53:52
Problema Oo Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <cstdio>
#include <cstring>
using namespace std;
int A[100001],oo[100001],i,n,rez,k;
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=1; 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);
    return 0;
}