아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

숫자 골라내기

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

요약
구간 [l, r]에서 서로 다른 정수를 1개 이상 k개 이하로 골라, 고른 수들의 XOR을 최소로 만들고 그 값을 출력한다.
난이도

어려움10점 중 8점

유형
비트 연산, 수학, 그리디, 동적 계획법
정답자
아직 제출이 없습니다

문제

성관이는 다음 조건을 모두 만족하는 집합 SS를 만들려고 한다.

  • SS의 원소는 모두 서로 다른 자연수이다.
  • SS의 원소는 모두 ll 이상 rr 이하이다.
  • SS의 원소 개수는 11 이상 kk 이하이다.

SS의 모든 원소를 비트 XOR한 값이 가장 작아지도록 SS를 고르고, 그 XOR 값을 구하라.

입력

첫째 줄에 자연수 ll, rr, kk가 공백으로 구분되어 주어진다. (1≤l≤r≤10121 \le l \le r \le 10^{12}, 1≤k≤min⁡(106,r−l+1)1 \le k \le \min(10^6, r-l+1))

출력

첫째 줄에 XOR 값의 최솟값을 출력한다. 최솟값을 만드는 집합은 여러 개일 수 있지만, 출력하는 것은 그 최솟값 하나뿐이다.

예제3

  1. 예제 1

    입력
    8 15 3
    
    예상 출력
    1
    
  2. 예제 2

    입력
    8 30 7
    
    예상 출력
    0
    
  3. 예제 3

    입력
    5 6 2
    
    예상 출력
    3