Spacer Po Drzewie Binarnym

mail@pastecode.io avatar
unknown
plain_text
3 years ago
896 B
2
Indexable
Never
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int q;
long long a, b;

string to_binary(long long x) {
  string wynik;

  while (true) {
    wynik += to_string(x % 2);
    x /= 2;
    if (x <= 0) {
      reverse(wynik.begin(), wynik.end());
      return wynik;
    }
  }
  reverse(wynik.begin(), wynik.end());
  return wynik;
}

int f(int a, int b) {
  int wynik = 0;
  string str = to_binary(a);
  string str1 = to_binary(b);

  //cout<<str<<" "<<str1<<"\n";

  for (int i = 0; i < max(str.size(), str1.size()); i++) {

    if (str[i] != str1[i]) {
      wynik += str.size() - 1 - (i - 1);
      wynik += str1.size() - 1 - (i - 1);
      return wynik;
    }
  }

  return wynik;
}

int main() {

  cin >> q;

  for (int i = 0; i < q; i++) {
    cin >> a >> b;
    cout << f(a, b) << "\n";
  }

  return 0;
}