Cod sursa(job #773829)

Utilizator infoarena_vnaPeter Shetkel infoarena_vna Data 2 august 2012 17:59:26
Problema Branza Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.3 kb
const
        tfi     =       'branza.in';
        tfo     =       'branza.out';
        Nmax    =       100000;
type
        arr1    =       array[1..Nmax] of longint ;
var
        fi,fo   :       text;
        n,s,t,top1,top     :       longint ;
        st,c       :       arr1 ;
        si,p      :       array[1..Nmax] of int64 ;
        res     :    int64 ;
procedure Nhap;
var
        i :longint;
begin
        REad(fi,n,s,t);
	read(fi,c[1],p[1]);
	si[1]:=c[1]-s;
        for i := 2 to n do
         begin
          Read(fi,c[i],p[i]) ;
          si[i] := c[i] - s * i ;
          res := res + p[i] * s * i ;
         end;
end;
procedure xuly;
var
        i : longint;
begin
        top1 := 1 ;
        top := 1 ;
        st[1] := 1;
        res := res + c[1] * p[1] ;
        for i := 2 to n do
          begin
                If (top1 <= top) and (i - st[top1]  > t) then inc(top1) ;
                while (top1 <= top) and (si[i] <= si[st[top]]) do dec(top);
                inc(top);
                st[top] := i ;
                res := res + p[i] * si[st[top1]] ;
          end;
	write(fo,res);
end;
begin
        assign(fi,tfi);reset(fi);
        assign(fo,tfo);rewrite(fo);
                  Nhap;
                  xuly;
        close(fo);
        close(fi);
end.