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

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

Broken Device 2

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

요약
Anna은 10^18까지의 정수를 0과 1로 이루어진 배열에 담아 셔플 장치로 보내고, Bruno는 섞인 배열에서 그 정수를 정확히 복원합니다.
난이도

어려움10점 중 8점

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

문제

Anna와 Bruno는 도박의 달인이다. 두 사람은 게임의 진행자인 D-taro와 함께 게임을 한다.

이 게임에서 Anna와 Bruno는 서로 다른 방에 있다. 두 사람은 고장 난 장치로만 소통할 수 있다. D-taro는 Anna에게 정수 하나를 준다. 두 사람의 목표는 이 정수를 장치를 이용해 Anna에서 Bruno로 전달하는 것이다.

게임이 시작되면 먼저 Anna가 1 이상 2000 이하의 정수 mm을 정한다. 이후 두 사람은 QQ라운드를 진행한다. ii번째 라운드(1≤i≤Q1 \le i \le Q)는 다음과 같다.

  1. D-taro가 정수 AiA_i를 Anna에게 준다.
  2. Anna가 배열 sis_i와 tit_i를 장치에 입력한다. sis_i와 tit_i의 모든 원소는 0 또는 1이다. 두 배열의 길이는 같고, 그 길이는 1 이상 mm 이하이다.
  3. sis_i와 tit_i로부터 리플 셔플(아래 정의 참고)로 얻은 배열을 uiu_i라 하자. 장치는 uiu_i를 Bruno에게 보낸다.
  4. Bruno가 정수 하나를 D-taro에게 보낸다. 이 정수가 AiA_i와 같으면 이번 라운드는 두 사람의 승리이다.

모든 QQ라운드에서 두 사람이 이기도록 Anna와 Bruno의 전략을 구현하는 프로그램을 작성하라.

제한

1≤Q≤1 0001 \le Q \le 1\,000.

1≤Ai≤10181 \le A_i \le 10^{18} (1≤i≤Q1 \le i \le Q).

예제1

  1. 예제 1

    입력
    1
    1
    
    예상 출력
    1