Pagini recente » Cod sursa (job #2357151) | Cod sursa (job #1720814) | Cod sursa (job #1550431) | Cod sursa (job #1387937) | Cod sursa (job #771769)
Cod sursa(job #771769)
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.