Programming/BOJ
[백준/BOJ] 1057 토너먼트
he1fire
2020. 9. 21. 16:36
728x90
문제 : 1057 토너먼트
1057번: 토너먼트
김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를
www.acmicpc.net
토너먼트 1라운드에서 번호가 주어졌을때, 두 참가자가
몇라운드에서 만나는지를 출력하면 되는지 문제이다.
번호를 1번이 아닌 0번부터 생각해보면
만나는 사람은 2로 나눴을때의 몫이 같으므로 같을때까지 반복해주면 된다.
Code
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
ll N, a, b, ans=1;
cin >> N >> a >> b;
a--;
b--;
while (a/2!=b/2){
a/=2;
b/=2;
ans++;
}
cout << ans;
return 0;
}
728x90