Cod sursa(job #771769)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 26 iulie 2012 23:02:00
Problema Shop Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.87 kb
Program monezi;
type tip=record
      p,nr,pos:longint;
      end;
var a:array [1..20] of tip;
    sol:array [1..20] of longint;
    i,j,n,c,nr:longint;
    s,pt,dv:int64;
    y:tip;
    fi,fo:text;
function pow(a,b:longint):int64;
 var p:int64;
     i:longint;
begin
 p:=1;
  for i:=1 to b do p:=p*a;
 pow:=p;
end;
begin
 assign(fi,'shop.in');
  assign(fo,'shop.out');
 reset(fi); rewrite(fo);readln(fi,n,c,s);
 for i:=1 to n do begin readln(fi,a[i].p,a[i].nr); a[i].pos:=i; end;
  for i:=1 to n-1 do
   for j:=i+1 to n do
    if a[j].p<a[i].p then begin y:=a[j]; a[j]:=a[i]; a[i]:=y; end;
  for i:=n downto 1 do begin
   pt:=pow(c,a[i].p);
    if s div pt>a[i].nr then dv:=a[i].nr else dv:=s div pt;
   sol[a[i].pos]:=dv; nr:=nr+dv;
   s:=s-dv*pt;
   if s<=0 then break;
  end;
  writeln(fo,nr);
  for i:=1 to n do write(fo,sol[i],' ');
 close(fo);
end.