Cod sursa(job #701605)

Utilizator vergilius_beberindeie virgil vergilius_be Data 1 martie 2012 16:45:55
Problema Subsecventa de suma maxima Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.03 kb
{subsecventa de suma maxima}
program secv;
var v,sm:array[0..6000000] of longint;
    n,i,imin,imax,i0,i1:longint;
    smax:longint;
    f,g:text;
begin
        assign(f,'ssm.in');
        reset(f);
        assign(g,'ssm.out');
        rewrite(g);
        readln(f,n);
        read(f,v[1]);
        smax:=v[1];
        imin:=1;
        imax:=1;
        i0:=1;
        i1:=1;
        sm[1]:=v[1];
        for i:=2 to n do
          begin
            read(f,v[i]);
            if sm[i-1]>=0 then
              begin
               sm[i]:=sm[i-1]+v[i];
               imax:=i;
              end
                else
                   begin
                      sm[i]:=v[i];
                      imin:=i;
                      imax:=i;
                   end;
            if smax<sm[i] then
               begin
                  smax:=sm[i];
                  i0:=imin;
                  i1:=imax;
               end;
          end;
        write(g,smax,' ',i0,' ',i1);
        close(f);
        close(g);
end.