Cod sursa(job #603543)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 17 iulie 2011 11:26:17
Problema Subsecventa de suma maxima Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.89 kb
program sgventa_de_suma_maxima_1;
 var a,sum:array [1..6000002] of longint;
     i,j,max,posmax,n,l1,l2:longint;
     b1,b2:array [1..1 shl 17] of char;
     fi,fo:text;
begin
 assign(fi,'ssm.in');
  assign(fo,'ssm.out');
 settextbuf(fi,b1);
 settextbuf(fo,b2);
 reset(fi);
  rewrite(fo);
 readln(fi,n);
 max:=-10000000;
  for i:=1 to n do read(fi,a[i]);
 sum[n]:=a[n]; l1:=1;
  for i:=n-1 downto 1 do begin
   if  a[i]+sum[i+1]>=a[i] then begin
                                  sum[i]:=a[i]+sum[i+1];
                                        inc(l1);
                                 end
   else begin
        sum[i]:=a[i];
        l1:=1;
        end;
   if sum[i]>=max then begin
                      max:=sum[i];
                      posmax:=i;
                      l2:=l1;
                      end;
   end;
  write(fo,max,' ',posmax,' ',posmax+l2-1);
  close(fo);
 end.