Cod sursa(job #800077)

Utilizator tibi2012Galatanu Tiberiu tibi2012 Data 20 octombrie 2012 18:08:58
Problema Shop Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.01 kb
type tip=record
  p,nr,pos:longint;
end;

var a:array [1..30] of tip;
    sol:array [1..30] of longint;
    i,j,n,nr,c:longint;
    s,pt,dv:int64;
    y:tip;
    f,g:text;

function shop(a,b:longint):int64;
var p:int64;
    i:longint;
begin
  p:=1;
  for i:=1 to b do p:=p*a;
    shop:=p;
end;

begin
  assign(f,'shop.in');
  assign(g,'shop.out');
  reset(f);
  rewrite(g);
  readln(f,n,c,s);
  for i:=1 to n do
    begin
      readln(f,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:=shop(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(g,nr);
  for i:=1 to n do
    write(g,sol[i],' ');
  close(f);
  close(g);
end.