Cod sursa(job #408713)

Utilizator hungntnktpHungntnktp hungntnktp Data 3 martie 2010 10:34:54
Problema Subsecventa de suma maxima Scor 70
Compilator fpc Status done
Runda Arhiva educationala Marime 0.92 kb
{DINH QUANG DAT TIN 07-10}
{SSM}
{$inline on}
{$mode objfpc}
CONST
 TFI='ssm.in';
 TFO='ssm.out';
 MAX=6000001;
TYPE
 arr1int=array[0..MAX] of longint;
VAR
 fi,fo:text;
 resst,resfi,st,len,n:longint;
 a:arr1int;
 res:int64;

PROCEDURE       input;inline;
var
 i:longint;
begin
 assign(fi,tfi);reset(fi);
  read(fi,n);
  for i:= 1 to n do read(fi,a[i]);
 close(fi);
end;

PROCEDURE       init;
begin
 res:=-1000000000000000;
end;

PROCEDURE       process;inline;
var
 i,j:longint;
 s:int64;
begin
 s:=0;
 st:=1;
 for i:= 1 to n do
  begin
   if s=0 then st:=i;
   s:=s+a[i];
   if s>res then
    begin
     res:=s;
     resst:=st;
     resfi:=i;
     len:=resfi-resst+1;
    end;
   if s<=0 then s:=0;
  end;
end;

PROCEDURE       output;
begin
 assign(fo,tfo);rewrite(fo);
  writeln(fo,res,' ',resst,' ',resfi);
 close(fo);
end;

BEGIN
 input;
 init;
 process;
 output;
END.