Spacer Po Drzewie Binarnym
unknown
plain_text
4 years ago
896 B
15
Indexable
#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;
}Editor is loading...