- toc {:toc}
ํ์ด
์๋ฐฉํฅ์ผ๋ก ๊ณ์ฐ์ ์๊ฐํ์ ๋ 1์ ์ถ๊ฐํ๋ ๊ธฐ์ค์ด ๋ช ํํ์ง ์๊ธฐ ๋๋ฌธ์ ์ญ์ผ๋ก B์์ A๋ก ๊ฐ๋ ๋ฐฉ์์ ์๊ฐํ๋ค. 2๋ก ๋๋ ์ฃผ๋ฉด์ ์ผ์ ์๋ฆฌ์ 1์ด ๋์ค๋ ๊ฒฝ์ฐ 1์ ์ ์ธํด์ฃผ๋ฉฐ ์ฐ์ฐ์ ์นด์ดํธํ๋ค.
162 โ 81 โ 8 โ 4 โ 2
1์ด ์๋ ํ์๊ฐ ๋์ฌ ๊ฒฝ์ฐ ๋๋ ์ ์๊ธฐ ๋๋ฌธ์ ํด๋น ๊ฐ์ ๋ง๋ค ์ ์์ผ๋ฏ๋ก -1์ ์ถ๋ ฅํ๋ค. B๊ฐ A๋ณด๋ค ์์์ง๋ ๊ฒฝ์ฐ, A๋ก B๋ฅผ ๋ง๋ค ์ ์๋ค๋ ๋ง๊ณผ ๋์น์ด๊ธฐ ๋๋ฌธ์ -1์ ์ถ๋ ฅํ๋ค.
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
int a, b, res = 0;
cin >> a >> b;
while(true){
if(b % 10 != 1 && b % 2 == 1){
cout << -1 << '\n';
exit(0);
}
else if(b % 10 == 1){
res++;
b = b / 10;
}
else{
b = b / 2;
res++;
}
if(a > b){
cout << -1 << '\n';
exit(0);
}
else if(a == b){
break;
}
}
cout << res+1 << '\n';
return 0;
}