比赛 20101105 评测结果 AAAAAAAAAA
题目名称 倒水 最终得分 100
用户昵称 belong.zmx 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2010-11-05 21:07:41
显示代码纯文本
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.