Cod sursa(job #949582)

Utilizator OnimushaLordTiberiu Copaciu OnimushaLord Data 14 mai 2013 11:49:56
Problema Oo Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
# include <cstdio>
# include <algorithm>
# define MAXN 100005
using namespace std;
int a[MAXN], s[MAXN];
int i,n,rez,k;
int main()
{
    freopen("oo.in","r",stdin);
    freopen("oo.out","w",stdout);
    scanf("%d", &n);
    for (i=0; i<n; ++i) scanf("%d",&a[i]);
    if(n==2) rez=a[0]+a[1];
    else
        for(k=0; k<2; k=(k+1)%n)
        {
            s[k]=0;
            s[(k+1)%n]=0;
            s[(k+2)%n]=a[(k+1)%n]+a[(k+2)%n];
            for(i=(k+3)%n; i!=k; i=(i+1)%n)
            {
                s[i]=max(s[(i-1+n)%n],s[(i-3+n)%n]+a[(i-1+n)%n]+a[i]);
                rez=max(rez,s[(k-1+n)%n]);
            }
        }
    printf("%d\n", rez);
    return 0;
}