Cod sursa(job #42964)

Utilizator MariusGeantaMarius Geanta MariusGeanta Data 29 martie 2007 18:00:10
Problema Shop Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.34 kb
{ Shop/Infoarena }
program sdf;
type moneda=record
     a:integer;
     b:longint;
               end;
    var x:array[1..30] of moneda;
        v:array[1..30] of longint;
        s,n,i,j,cai,max,min,nrmin,p,l,c:longint;
        f:text;
begin
     { citire date de intrare }
     assign(f,'shop.in');reset(f);
     readln(f,n,c,l);
     for i:=1 to n do
         readln(f,x[i].a,x[i].b);
     close(f);
     { determinarea celui mai mare tip de moneda }
     max:=x[1].a;
     for i:=2 to n do
         if max<x[i].a  then begin
                                  max:=x[i].a;
                                  p:=i;
                             end;
     { determinare nr minim de monezi  }
     nrmin:=0;
     while l>0 do begin
           cai:=1;
           for i:=1 to x[p].a do cai:=cai*c;
           min:=l div cai;
           if min>x[p].b then min:=x[p].b;
           s:=cai*min;
           l:=l-s;
           v[p]:=min;
           nrmin:=nrmin+min;
           p:=0;i:=1;max:=-1;
           for i:=1 to n do
               if (max<x[i].a) and (v[i]=0) then begin
                  max:=x[i].a;
                  p:=i;
                       end;
                  end;
     { afisare }
     assign(f,'shop.out');rewrite(f);
     writeln(f,nrmin);
     for i:=1 to n do
         write(f,v[i],' ');
     close(f);
end.