Cod sursa(job #589953)

Utilizator vendettaSalajan Razvan vendetta Data 14 mai 2011 19:19:40
Problema Oo Scor 50
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.92 kb
const f = 'oo.in'; g = 'oo.out';
var
    n, i, j, k : integer;
    rez : longint;
    oo : array[0..9999] of integer;
    a  : array[0..9999] of longint;

function max (a, b : longint ) : longint;
    begin
        if a > b then max := a else max := b;
    end;
begin
    assign( input,f ); reset( input );
    assign( output,g ); rewrite( output );
    readln( n );
    for i := 0 to n-1 do read( oo[i] );

    if n = 2 then rez := oo[0] + oo[1]
    else
        for k := 0 to 1 do begin
            a[k] := 0; a[(k + 1) mod n] := 0;
            a[(k + 2) mod n] := oo[(k + 1) mod n] + oo[(k + 2) mod n];
            i := (k + 3) mod n;
            while i <> k do begin
                a[i] := max( a[( i-1+n ) mod n], a[( i-3+n ) mod n] + oo[( i-1+n) mod n] + oo[i] );
                i := (i + 1) mod n;
            end;
        rez := max( rez, a[(k - 1 + n) mod n] );
        end;

    writeln( rez );
end.