728x90
https://www.acmicpc.net/problem/1057
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> arr[18];
int main() {
int n, a, b;
cin >> n >> a >> b;
for (int i = 1; i <= n; i++) {
arr[0].push_back(i);
}
int row = 0;
int result;
bool flag = false;
while (true) {
for (int i = 0; i < arr[row].size(); i += 2) {
if (i + 1 >= arr[row].size()) {
arr[row + 1].push_back(arr[row][i]);
}
else if ((arr[row][i] == a || arr[row][i] == b) && (arr[row][i + 1] == a || arr[row][i + 1] == b)) {
result = row + 1;
flag = true;
break;
}
else {
if (arr[row][i] == a || arr[row][i] == b) {
arr[row + 1].push_back(arr[row][i]);
}
else if (arr[row][i + 1] == a || arr[row][i + 1] == b) {
arr[row + 1].push_back(arr[row][i + 1]);
}
else {
arr[row + 1].push_back(arr[row][i]);
}
}
}
if (flag) break;
row++;
}
cout << result;
return 0;
}
728x90
'알고리즘 문제' 카테고리의 다른 글
[백준] 1520번 내리막 길 (0) | 2020.03.11 |
---|---|
[백준] 2293번 동전 1 (0) | 2020.03.08 |
[백준] 2309번 일곱 난쟁이 (0) | 2020.03.07 |
[백준] 3053번 택시 기하학 (0) | 2020.03.07 |
[백준] 1002번 터렛 (0) | 2020.03.07 |