Cod sursa(job #773818)

Utilizator infoarena_vnaPeter Shetkel infoarena_vna Data 2 august 2012 17:46:57
Problema Branza Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.42 kb
{$Q-,R-,S-,I-}
{$INLINE ON}
{$H+}
{$M 12800000}
const
        tfi     =       'branza.in';
        tfo     =       'branza.out';
        Nmax    =       100001;
type
        arr1    =       array[0..Nmax] of longint ;
var
        fi,fo   :       text;
        n,s,t,top1,top     :       longint ;
        st       :       arr1 ;
        c,p,si      :       array[0..Nmax] of int64 ;
        res     :    int64 ;
procedure Nhap;
var
        i,j,k :longint;
begin
        REad(fi,n,s,t);
        for i := 1 to n do
         begin
          Read(fi,c[i],p[i]) ;
          si[i] := c[i] - s * i ;
          if i > 1 then res := res + p[i] * s * i ;
         end;
end;
procedure xuly;
var
        i,j,k: longint;
begin
        top1 := 1 ;
        top := 1 ;
        st[1] := 1;
        res := res + c[1] * p[1] ;
        for i := 2 to n do
          begin
                while (top1 <= top) and (i - st[top1]  > t) do 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;
end;
procedure inkq;
var
        i,j,k: longint;
begin
        write(fo,res);
end;
begin
        assign(fi,tfi);reset(fi);
        assign(fo,tfo);rewrite(fo);
                  Nhap;
                  xuly;
                  inkq;
        close(fo);
        close(fi);
end.