알고리즘 문제/BOJ
1057번 토너먼트
parkit
2018. 12. 7. 12:54
728x90
반응형
https://www.acmicpc.net/problem/1057
다음 라운드의 자신의 번호는 (현재 자신의 번호 + 1) / 2이다.
예)
1과 2를 보면
(1 + 1) / 2 = 1
(2 + 1) / 2 = 1
같으면, 경기(대결)를 해당 라운드에서 하게 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #include <iostream> #include <queue> #include <stack> #include <cstdio> #include <vector> #include <cstring> #include <string> #include <math.h> #include <algorithm> #include <map> using namespace std; int N = 0, kim = 0, lim = 0; int main(void) { scanf("%d %d %d", &N, &kim, &lim); int pos = 2, result = 1; while (1) { int Nextkim = (kim + 1) / 2; int Nextlim = (lim + 1) / 2; if (Nextkim == Nextlim) break; kim = (kim + 1) / 2; lim = (lim + 1) / 2; ++result; } printf("%d\n", result); return 0; } | cs |
728x90
반응형