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

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

Xor Sum

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

요약
음이 아닌 정수 N개의 합이 S이고 XOR 값이 X가 되도록 할 때, 가능한 최댓값의 최솟값을 구합니다. 조건을 만족하는 수열이 없으면 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
비트 연산, 이분 탐색, 수학
정답자
아직 제출이 없습니다

문제

음이 아닌 정수 NN개로 이루어진 수열 a1,a2,⋯ ,aNa_1, a_2, \cdots, a_N 중에서 다음 두 조건을 모두 만족하는 수열이 존재하는지 판단하시오. 존재한다면 수열의 원소 중 최댓값이 가능한 한 작아지도록 했을 때 그 최댓값을 구하시오.

  • a1+a2+⋯+aN=Sa_1+a_2+\cdots+a_N=S
  • a1⊕a2⊕⋯⊕aN=Xa_1 \oplus a_2 \oplus \cdots \oplus a_N=X (⊕\oplus는 비트 단위 xor 연산이다)

한 입력 파일에 TT개의 테스트가 들어 있다.

입력

입력은 표준 입력으로 다음 형식으로 주어진다.

TT

N1N_1 S1S_1 X1X_1

N2N_2 S2S_2 X2X_2

⋮\vdots

NTN_T STS_T XTX_T

여기서 NiN_i, SiS_i, XiX_i는 ii번째 테스트의 NN, SS, XX 값이다.

출력

TT개의 줄을 출력한다. ii번째 줄에는 ii번째 테스트에서 조건을 만족하는 수열이 없으면 −1-1을, 있으면 최댓값의 최솟값을 출력한다.

제한

  • 1≤T≤5001 \leq T \leq 500
  • 1≤N≤260−11 \leq N \leq 2^{60}-1
  • 0≤S≤260−10 \leq S \leq 2^{60}-1
  • 0≤X≤260−10 \leq X \leq 2^{60}-1
  • 입력의 모든 값은 정수이다.

힌트

다음은 각 테스트의 해이다.

  • (3,3,3)
  • (2,2,2,2)
  • (2,3,3,3,4,4)
  • (15)
  • Impossible
  • Impossible

예제1

  1. 예제 1

    입력
    6
    3 9 3
    4 8 0
    6 19 1
    1 15 15
    2 6 5
    5 4 3
    
    예상 출력
    3
    2
    4
    15
    -1
    -1