Cod sursa(job #47152)

Utilizator vanila0406Ionescu Victor vanila0406 Data 3 aprilie 2007 13:09:32
Problema Oo Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.38 kb
program oo;
var f,g:text;
        n:longint;
        v,a:array[0..100001] of longint;


procedure iofile;
var i:longint;
begin
        assign(f,'oo.in');
        reset(f);
        assign(g,'oo.out');
        rewrite(g);
        readln(f,n);
        for i:=0 to n-1 do
                read(f,v[i]);
        close(f);
end;


function p(x:longint):longint;
begin
        if x<0 then p:=n+x else
        p:=x mod n;
end;




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



procedure prel;
var k,i,maxim:longint;
begin
        maxim:=0;
        for k:=0 to 2 do
                begin
                        a[p(k)]:=0;
                        a[p(k+1)]:=0;
                        a[p(k+2)]:=v[p(k+1)]+v[p(k+2)];
                        i:=p(k+3);
                        while i<>k do
                                begin
                                        a[p(i)]:=max(a[p(i-1)],a[p(i-3)]
                                        +v[p(i-1)]+v[p(i)]);
                                        inc(i);
                                        i:=p(i);
                                end;
                        for i:=0 to n-1 do
                                if a[i]>maxim then maxim:=a[i];
                end;
        writeln(g,maxim);
        close(g);
end;


begin
        iofile;
       prel;
end.