[백준] Baekjoon Online Judge
문제
음이 아닌 정수로 구성된 수열 가 주어질 때, 함수 는 에 포함되지 않은 가장 작은 음이 아닌 정수를 의미합니다.
에 수열을 대입한 예시에는 다음이 있습니다.
음이 아닌 두 정수 와 가 주어질 때, 를 와 의 비트 OR이라고 부르며, 다음의 규칙에 따라 정의합니다.
- 2진법에서 와 중 적어도 하나의 번째 자리가 이라면 x|y의 번째 자리가 입니다.
- 2진법에서 와 둘 모두 번째 자리가 이라면 x|y의 번째 자리가 입니다.
두 정수의 비트 OR을 구한 예시에는 다음이 있습니다.
l <= r을 만족하는 음이 아닌 세 정수 , , 가 주어집니다. 여러분은 다음 수식의 값을 구해야 합니다.
입력
한 줄에 세 정수 , , 가 공백으로 구분되어 주어집니다. (, )
출력
한 줄에 문제의 정답을 출력합니다.
풀이
#include <iostream>
using namespace std;
bool arr[1000000];
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int l, r, x;
cin >> l >> r >> x;
for (int i = l; i <= r; i++) arr[i | x] = true;
for (int i = 0; ; i++) {
if (!arr[i]) {
cout << i << '\n';
break;
}
}
return 0;
}
l | x부터 r | x까지의 답을 arr에 표시하고, for문을 통해 가장 왼쪽에 있는 표시되지 않는 칸을 찾아 출력한다.
'백준 > C++' 카테고리의 다른 글
| [Baekjoon/C++] 34935번 - 오름차순과 비내림차순 (0) | 2026.01.03 |
|---|---|
| [Baekjoon/C++] 1969번 - DNA (0) | 2025.12.01 |
| [Baekjoon/C++] 34722번 - 출제자가 몇 명 (0) | 2025.11.13 |
| [Baekjoon/C++] 21557번 - 불꽃놀이 (0) | 2025.11.11 |
| [Baekjoon/C++] 12869번 - 뮤탈리스크 (0) | 2025.11.09 |
