Cod sursa(job #333403)

Utilizator doruletzPetrican Teodor doruletz Data 22 iulie 2009 16:09:22
Problema Subsecventa de suma maxima Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.66 kb
var sec:array[0..6000000]of longint;
    suma,s:int64;  
    n:integer;  
    li,lf,li1,i:longint;  
    t:text;  
begin  
 assign(t,'ssm.in'); reset(t);
 readln(t,n);  
 for i:=1 to n do readln(t,sec[i]);
 close(t);  

 suma:=sec[1];
 s:=sec[1];
 li1:=1;  
 li:=1;  
 lf:=1;  
 for i:=2 to n do begin
  if s<0 then begin s:=sec[i]; li1:=i mod n; end
         else if (li1<i)and(i<=n) then s:=s+sec[i]
                                 else if (i>n)and(li1+n>i) then s:=s+sec[i];
  if suma<s then begin  
   suma:=s;  
   li:=li1;  
   lf:=i;  
  end;  
 end;  

 assign(t,'ssm.out'); rewrite(t);
 writeln(t,suma,' ',li,' ',lf);
 close(t);  
end.