Cod sursa(job #137527)

Utilizator cristy_marin2006Marin Ionut Cristian cristy_marin2006 Data 17 februarie 2008 12:33:30
Problema Garaj Scor 0
Compilator fpc Status done
Runda preONI 2008, Runda 4, Clasa a 10-a Marime 1.8 kb
program garaj;
const nrmax=8000;
type vector =array[1..nrmax]of 1..2000;
var c,t,c1,t1:vector;
    n,m,i,tmin,cmin,mm:word;
    f,g:text;
procedure sorteaza;
var  k,i,aux:word;
     ordonat:boolean;
begin
   for k:=1 to n-1 do
     for i:=k+1 to n do
         if t[i]<t[k] then
            begin
                 aux:=t[k];
                 t[k]:=t[i];
                 t[i]:=aux;
                 aux:=c[k];
                 c[k]:=c[i];
                 c[i]:=aux;
            end;
end;
procedure selecteaza;
var i,j:word;
    ok:boolean;
begin
     ok:=false;
     for i:=1 to n do
         begin
              mm:=0;
              cmin:=0;
              tmin:=t[i];
              for j:=i-1 downto 1 do
                       c1[j]:=c[j]*(tmin div t[j]);
              c1[i]:=c[i];
              for j:=1 to i do
                  begin
                       mm:=mm+c1[j];
                       cmin:=cmin+1;
                       if mm>=m then
                           begin
                                write(g,tmin,' ',cmin);
                                i:=n;
                                j:=i;
                                ok:=true;
                           end;
                  end;
          end;
     if not ok then
        begin
             for i:=1 to n do
                 begin
                      c[i]:=c[i]*2;
                      t[i]:=t[i]*2;
                 end;
             selecteaza;
        end;
end;
begin
     assign(f,'garaj.in');reset(f);
     assign(g,'garaj.out');rewrite(g);
     read(f,n);readln(f,m);
     for i:=1 to n do
         begin
              read(f,c[i]);
              readln(f,t[i]);
         end;
     for i:=1 to n do
         t[i]:=t[i]*2;
     sorteaza;
     selecteaza;
     close(f);close(g);
end.