문제 링크
- http://icpc.me/17167
문제 출처
- 2019 KAIST RUN Spring Contest D번
풀이
a += a는 b /= 2와, b += b는 a /= 2와 같은 역할을 하기 때문에, a += a와 b += b를 b /= 2와 a /= 2로 바꿔서 쓸 수 있습니다.
큰 숫자를 다루기 싫으므로, A 혹은 B가 짝수라면 열심히 2로 나누어줍시다.
a와 b가 홀수이고, a > b인 경우를 생각해봅시다.(a < b인 경우에도 똑같이 처리할 수 있습니다.)
a += b, a /= 2(a += b, b += b)를 해주면 |a - b|의 값이 절반으로 감소하게 됩니다.
그러므로 log |a - b|번만 이 연산을 해주면 됩니다.
전체 코드
1 |
|