记录编号 21212 评测结果 AAAAAAAAAA
题目名称 倒水 最终得分 100
用户昵称 Gravatarbelong.zmx 是否通过 通过
代码语言 Pascal 运行时间 0.000 s
提交时间 2010-11-08 19:09:41 内存使用 0.11 MiB
显示代码纯文本
program watera(input,output);
var
 a,b:array[0..30]of longint;
 i,j,k:longint;
 ans,n,p:longint;

begin
 assign(input,'watera.in');
 reset(input);
 readln(n,k);
 close(input);

 a[0]:=1;
 for i:=1 to 30 do
  a[i]:=a[i-1]*2;

 i:=30;
 while i>=0 do
 begin
  if a[i]>n then dec(i)
  else
  begin
   inc(p);
   n:=n-a[i];
   b[i]:=1;
   dec(i);
  end;
 end;

 for i:=0 to 30 do
 begin
  if p<=k then break;
  if b[i]=1 then
  begin
   ans:=ans+a[i];
   inc(b[i+1]);
  end
  else
  if b[i]=2 then
  begin
   inc(b[i+1]);
   dec(p);
  end;
 end;

 assign(output,'watera.out');
 rewrite(output);
 writeln(ans);
 close(output);
end.