포럼
문제 USACO0498

소울메이트 찾기

설명

농부 존의 소들은 각자 자신의 소울메이트, 즉 자신과 비슷한 특성을 가져 궁합이 최고인 다른 소를 찾고 싶어 한다. 각 소의 성격은 정수 \(p_i\)(\(1 \leq p_i \leq 10^{18}\))로 표현된다. 성격이 같은 두 소는 소울메이트이다. 소는 "변경 연산"을 통해 성격을 \(2\)배로 만들거나, (\(p_i\)가 짝수이면) \(2\)로 나누거나, \(1\)을 더해서 성격을 바꿀 수 있다.

농부 존은 처음에 소들을 임의의 방식으로 짝지어 놓는다. 그는 각 소 쌍을 소울메이트로 만들기 위해 몇 번의 변경 연산이 필요한지 궁금하다. 각 쌍에 대해, 쌍의 첫 번째 소가 두 번째 소와 소울메이트가 되기 위해 수행해야 하는 변경 연산의 최소 횟수를 구하라.

출제자: Quanquan Liu

제약

배점

  • 테스트 케이스 1-4는 \(p_i \le 10^5\)를 만족한다.
  • 테스트 케이스 5-12는 추가 제약이 없다.

출제자: Quanquan Liu

입력 형식

첫째 줄에 소 쌍의 수 \(N\)(\(1\le N\le 10\))이 주어진다. 나머지 \(N\)개의 줄에 각 소 쌍의 성격을 나타내는 두 정수가 주어진다. 첫 번째 수는 두 번째 수와 같아지도록 바뀌어야 하는 소의 성격을 나타낸다.

출력 형식

\(N\)개의 줄을 출력한다. 각 쌍에 대해, 첫 번째 소의 성격을 두 번째 소의 성격과 같게 만들기 위해 필요한 연산의 최소 횟수를 출력한다.

예제 1
입력
6
31 13
12 8
25 6
10 24
1 1
997 120
출력
8
3
8
3
0
20
설명

For the first test case, an optimal sequence of changes is
\(31 \implies 32 \implies 16 \implies 8 \implies 9 \implies 10 \implies 11 \implies 12 \implies 13\).

For the second test case, an optimal sequence of changes is
\(12 \implies 6 \implies 7 \implies 8\).

문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2021-2022 > January > Silver

태그

평가 및 의견

Searching for Soulmates

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Searching for Soulmates

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8