MEX vs OR

시간 제한2초메모리 제한1024 MB

요약
l, r, x가 주어질 때 l부터 r까지의 각 정수 k에 대해 k|x를 구하고, 그 값들에 포함되지 않은 가장 작은 음이 아닌 정수를 찾는다.
난이도

쉬움10점 중 2점

유형
완전 탐색, 비트 연산, 배열
정답자
아직 제출이 없습니다

문제

음이 아닌 정수로 구성된 수열 aa가 주어질 때, 함수 mex(a)\text{mex}(a)는 aa에 포함되지 않은 가장 작은 음이 아닌 정수를 의미합니다.

mex\text{mex}에 수열을 대입한 예시에는 다음이 있습니다.

  • mex(\[1,2,3,4,5])=0\text{mex}(\[1,2,3,4,5])=0
  • mex(\[0,1,2,3,4])=5\text{mex}(\[0,1,2,3,4])=5
  • mex(\[0,1,2,4,5])=3\text{mex}(\[0,1,2,4,5])=3

음이 아닌 두 정수 xx와 yy가 주어질 때, x,∣,yx\\,|\\,y를 xx와 yy의 비트 OR이라고 부르며, 다음의 규칙에 따라 정의합니다.

  • 2진법에서 xx와 yy 중 적어도 하나의 ii번째 자리가 11이라면 x,∣,yx\\,|\\,y의 ii번째 자리가 11입니다.
  • 2진법에서 xx와 yy 둘 모두 ii번째 자리가 00이라면 x,∣,yx\\,|\\,y의 ii번째 자리가 00입니다.

두 정수의 비트 OR을 구한 예시에는 다음이 있습니다.

  • 2,∣,4=010_2,∣,100_2=110_2=62\\,|\\,4=010\_2\\,|\\,100\_2=110\_2=6
  • 3,∣,6=011_2,∣,110_2=111_2=73\\,|\\,6=011\_2\\,|\\,110\_2=111\_2=7
  • 5,∣,4=101_2,∣,100_2=101_2=55\\,|\\,4=101\_2\\,|\\,100\_2=101\_2=5

l≤rl \le r을 만족하는 음이 아닌 세 정수 ll, rr, xx가 주어집니다. 여러분은 다음 수식의 값을 구해야 합니다.

mex(\[(l,∣,x),((l+1),∣,x),⋯ ,((r−1),∣,x),(r,∣,x)])\text{mex}(\[(l\\,|\\,x),((l+1)\\,|\\,x),\cdots,((r-1)\\,|\\,x),(r\\,|\\,x)])

입력

한 줄에 세 정수 ll, rr, xx가 공백으로 구분되어 주어집니다. (0≤l≤r≤1,0000 \le l \le r \le 1\\,000, 0≤x≤1,0000 \le x \le 1\\,000)

출력

한 줄에 문제의 정답을 출력합니다.

힌트

대부분의 언어에서 음이 아닌 두 정수 xx와 yy의 비트 OR x,∣,yx\\,|\\,y는 연산자 |를 사용하여 (x|y)와 같이 구할 수 있습니다.

예제3

  1. 예제 1

    입력
    0 4 0
    
    예상 출력
    5
    
  2. 예제 2

    입력
    0 4 1
    
    예상 출력
    0
    
  3. 예제 3

    입력
    1 4 0
    
    예상 출력
    0