Cod sursa(job #137704)

Utilizator al3csutzuSirbu Alexandru al3csutzu Data 17 februarie 2008 12:57:28
Problema Carnati Scor 10
Compilator fpc Status done
Runda preONI 2008, Runda 4, Clasa a 10-a Marime 0.95 kb
program carnati;
var n,i,c,minim,maxim,rez,aux,aux1,j,max:longint;
t,p:array[1..1500] of longint;
da:boolean;
f,g:text;
begin
   assign(f,'carnati.in'); assign(g,'carnati.out');
   reset(f);rewrite(g);
   read(f,n,c);
   minim:=1501; maxim:=0;
   for i:=1 to n do
   begin
     read(f,t[i],p[i]);
     if minim>t[i] then minim:=t[i];
     if maxim<t[i] then maxim:=t[i];
   end;
   max:=0;
   for i:=1 to n do
   begin
     aux:=0; minim:=t[i]; maxim:=t[i];
     for j:=1 to n do
     if p[i]<=p[j] then
     begin
     da:=true;
     if maxim<t[j] then if c*(t[j]-maxim+1)>p[i] then da:=false;
     if minim<t[j] then if c*(minim-t[j]+1)>p[i] then da:=false;
     if da then
     begin
       if t[j]<minim then minim:=t[j];
       if maxim<t[j] then maxim:=t[j];
       aux:=aux+1;
     end;
     end;
     rez:=-c*(maxim-minim+1);
     if rez+p[i]*aux>max then max:=rez+p[i];
   end;
   writeln(g,max);
   close(f); close(g);
end.