728x90
반응형

27724번: 팝핀 소다
문제
https://www.acmicpc.net/problem/27724
27724번: 팝핀 소다
입력의 첫 번째 줄에 대회에 참가하는 선수의 수 $N$, 일어날 수 있는 이변의 수 $M$, 시은이의 탄산 내성 $K$가 공백으로 구분되어 주어진다. 주어지는 모든 수는 정수이다. $(2 \le N \le 262\,144;$ $0 \le
www.acmicpc.net
풀이
대회가 토너먼트 형식이므로 항상 자신이 이길 수 있는 상대와 대결해야 최대한으로 승리할 수 있다. 따라서 시은이의 탄산 내성이 K일 때, 시은이가 이길 수 있는 최대 대결의 수는 log2 K번이다. 만약 이변이 있는 경우, 최대한 이길 수 있는 다음 이변의 수만큼 더 이길 수 있다. 따라서 최대 log2 K + M번 이길 수 있지만 전체 라운드 수는 log2 N번이다. 따라서 시은이가 이길 수 있는 최대 대결의 수는 min(log2 K + M, log2 N)번이다.
코드
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n, m, k;
cin >> n >> m >> k;
int ans = min(log2(k) + m, log2(n));
cout << ans;
return 0;
}
728x90
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[백준 / BOJ] C++ 1365 꼬인 전깃줄 (0) | 2023.03.13 |
---|---|
[백준 / BOJ] C++ 11003 최솟값 찾기 (0) | 2023.03.13 |
[백준 / BOJ] C++ 27737 버섯 농장 (0) | 2023.03.12 |
[백준 / BOJ] C++ 27736 찬반투표 (0) | 2023.03.12 |
[백준 / BOJ] C++ 5427 불 (0) | 2023.03.12 |