Cod sursa(job #197553)

Utilizator ProtomanAndrei Purice Protoman Data 4 iulie 2008 23:51:58
Problema Oo Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.06 kb
var f1,f2:text;
    i,j,n,maxim,x:longint;
    a:array[0..100010] of longint;
    v:array[0..3,0..100010] of longint;

function max(x,y:longint):longint;
begin
        max:=x;
        if max<y then
                max:=y;
end;

procedure caz(st,fn:longint);
begin
        for i:=0 to 3 do
                for j:=0 to 100010 do
                        v[i,j]:=0;
        v[1,st]:=a[st];
        v[2,st]:=a[st]+a[st-1];
        for i:=st+1 to fn do
        begin
                v[0,i]:=max(v[0,i-1],v[2,i-1]);
                v[1,i]:=v[0,i-1]+a[i];
                v[2,i]:=v[1,i-1]+a[i];
        end;
        if max(v[2,fn],v[0,fn])>maxim then
                maxim:=max(v[2,fn],v[0,fn]);
end;

begin
        assign(f1,'oo.in');
        reset(f1);
        assign(f2,'oo.out');
        rewrite(f2);
        read(f1,n);
        for i:=1 to n do
                read(f1,a[i]);
        a[0]:=a[n];
        maxim:=0;
        caz(1,n-2);
        caz(2,n-1);
        caz(3,n);
        writeln(f2,maxim);
        close(f1);
        close(f2);
end.