반응형

문제출처

https://www.acmicpc.net/problem/1057


문제풀이

/**
* 다음라운드의 자신의 번호 = (현재 자신의 번호 + 1) / 2
* ==> int형 기준
* 다음라운드의 번호가 같다면 break해준다.
* Ex) 7, 8 번 매칭이라면 (7+1)/2 = 8, (8+1)/2 = 8 이므로 1라운드에 매칭하는 것
*/


소스코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    int n, kim, lim;
    cin>>n>>kim>>lim;
    int round=1;
    while(n) {
        if((kim+1)/2 == (lim+1)/2break;
        kim = (kim+1)/2;
        lim = (lim+1)/2;
        round++;
        n/=2;
    }
    if(!n) round=-1;
    cout<<round<<"\n";
    return 0;
}
cs


반응형

'Algorithm' 카테고리의 다른 글

[BOJ 2675] 문자열 반복  (0) 2019.04.15
[BOJ 13458] 시험감독  (0) 2019.04.15
[BOJ 1094] 막대기  (0) 2019.04.15
[BOJ 11718] 그대로 출력하기  (0) 2019.04.15
[SWEA 1244] 최대 상금  (4) 2019.02.27

+ Recent posts