만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

놀이공원

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

요약
연결된 그래프의 각 정점에 0 또는 1을 적어, 어느 정점에서 출발하든 적은 이동 횟수로 60비트 정수 X를 알아내는 방법을 구합니다.
난이도

어려움10점 중 8점

유형
그래프, 비트 연산, BFS
정답자
아직 제출이 없습니다

문제

JOI-kun에게는 여동생 IOI-chan이 있다. 지금 JOI-kun은 JOIOI 공원이라는 놀이공원에서 IOI-chan과 함께 놀고 있다.

JOIOI 공원에는 0번부터 N−1N-1번까지 번호가 붙은 놀이기구 NN개가 있다. 공원에는 길 MM개도 있다. 각 길은 양방향으로 지날 수 있으며, 서로 다른 놀이기구 두 개를 잇는다. 길을 하나 이상 거치면 어떤 놀이기구에서든 다른 놀이기구로 갈 수 있다. JOI-kun과 IOI-chan은 공원 지도를 갖고 있어서 놀이기구끼리 어떻게 이어져 있는지 알고 있다.

각 놀이기구에는 메시지 보드가 있다. JOI-kun은 메시지 보드마다 0 또는 1 중 정수 하나만 적을 수 있다. 서로 다른 메시지 보드에는 서로 다른 값을 적을 수 있다. 한 번 적은 값은 다른 방문자가 덮어쓸 수 없다.

JOI-kun과 IOI-chan은 서로 다른 놀이기구에서 놀다가 어느 시점에 만나기로 했다. 휴대전화 같은 연락 수단이 없어서, JOI-kun은 메시지 보드로 만날 시각을 뜻하는 정수 XX를 IOI-chan에게 전하기로 했다.

두 사람은 다음 방식으로 소통한다.

  1. 먼저 JOI-kun이 모든 메시지 보드에 0 또는 1을 적는다.
  2. 그다음 IOI-chan이 길을 따라 한 놀이기구에서 다른 놀이기구로 계속 이동한다. 이동하는 동안 그녀는 방문한 놀이기구마다 메시지 보드에 적힌 정수를 읽는다. 출발한 놀이기구의 메시지 보드도 포함한다.

IOI-chan은 이동 횟수를 최대한 적게 해서 정수 XX를 알아내려고 한다.

JOI-kun이 IOI-chan에게 정수 XX를 전할 수 있도록 프로그램 두 개를 작성하라.

  • 첫 번째 프로그램은 길 정보와 정수 XX를 받아, JOI-kun이 각 메시지 보드에 적을 0 또는 1을 정한다.
  • 두 번째 프로그램은 길 정보, IOI-chan의 출발 놀이기구 PP, 출발 놀이기구의 메시지 보드에 적힌 정수를 받는다. 길을 따라 다른 놀이기구로 이동하고, 도착한 놀이기구의 메시지 보드를 읽어서 XX를 계산한다.

두 프로그램은 길 정보를 정확히 같은 방식으로 받는다. 특히 놀이기구 번호는 두 프로그램에서 같고, 길의 순서도 같다.

시간 제한은 2000 ms이고, 메모리 제한은 512 MB이다.

제한

  • 60≤N≤1000060 \le N \le 10000이다.
  • 1≤M≤200001 \le M \le 20000이다.
  • 0≤A[i]≤N−10 \le A[i] \le N-1이다 (0≤i≤M−10 \le i \le M-1).
  • 0≤B[i]≤N−10 \le B[i] \le N-1이다 (0≤i≤M−10 \le i \le M-1).
  • A[i]≠B[i]A[i] \ne B[i]이다 (0≤i≤M−10 \le i \le M-1).
  • (A[i],B[i])≠(A[j],B[j])(A[i], B[i]) \ne (A[j], B[j])이다 (0≤i<j≤M−10 \le i < j \le M-1).
  • (A[i],B[i])≠(B[j],A[j])(A[i], B[i]) \ne (B[j], A[j])이다 (0≤i<j≤M−10 \le i < j \le M-1).
  • 길을 하나 이상 거치면 어떤 놀이기구에서든 다른 놀이기구로 갈 수 있다.
  • 0≤X≤260−10 \le X \le 2^{60}-1이다.
  • 0≤P≤N−10 \le P \le N-1이다.

예제1

  1. 예제 1

    입력
    60 59
    0 1
    1 2
    2 3
    3 4
    4 5
    5 6
    6 7
    7 8
    8 9
    9 10
    10 11
    11 12
    12 13
    13 14
    14 15
    15 16
    16 17
    17 18
    18 19
    19 20
    20 21
    21 22
    22 23
    23 24
    24 25
    25 26
    26 27
    27 28
    28 29
    29 30
    30 31
    31 32
    32 33
    33 34
    34 35
    35 36
    36 37
    37 38
    38 39
    39 40
    40 41
    41 42
    42 43
    43 44
    44 45
    45 46
    46 47
    47 48
    48 49
    49 50
    50 51
    51 52
    52 53
    53 54
    54 55
    55 56
    56 57
    57 58
    58 59
    0
    
    예상 출력
    000000000000000000000000000000000000000000000000000000000000