Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var a, a_t, b, bb, x, y, pow : uint64; b_2, a_2 : string; i : integer;
- procedure to_bin;
- begin
- b_2:='';
- if b = 0 then
- b_2:='0';
- while b>0 do
- begin
- if b mod 2 = 1 then
- b_2 := '1' + b_2
- else
- b_2 := '0' + b_2;
- b := b div 2;
- end;
- //////////////////////////////
- while Length(b_2) <> 64 do
- b_2 := '0'+b_2;
- end;
- begin
- readln(a);
- readln(b);
- a_t := a;
- to_bin;
- pow:=9223372036854775808;
- I := 1;
- While pow<>0 do
- begin
- if (b_2[i] = '1')and(pow<=a_t) then
- begin
- y := y+pow;
- a_t := a_t-pow;
- end
- else if (pow <> 9223372036854775808 ) then // шоб не вылезло из 64 бит
- if pow*2<=a_t then
- begin
- x := x+pow;
- y := y+pow;
- a_t := a_t-pow*2;
- end;
- //Writeln(x, ' ', y, ' ',pow);
- pow := pow div 2;
- Inc(i);
- end;
- if x+y = a then
- write(x,' ',y)
- else
- write(-1);
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement