만드는 중입니다

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

정지 키 찾기

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

요약
여덟 개의 키를 두 키씩 맞바꾸는 명령을 차례로 적용한 뒤, 정지 키가 놓인 점의 번호를 구합니다.
난이도

쉬움10점 중 2점

유형
시뮬레이션, 비트 연산
정답자
아직 제출이 없습니다

문제

한 공장에서 인공지능 로봇이 오작동을 일으켜 폭주하고 있다. 로봇을 멈추려면 주어진 88개의 키 중 로봇을 정지시키는 키를 찾아야 한다. 그런데 로봇은 그 키까지 섞기 시작했다. 섞는 속도가 매우 빨라 사람의 눈으로는 키의 움직임을 따라갈 수 없다. 다행히 로봇이 키를 섞는 데 쓰는 알고리즘과 로봇을 정지시키는 키의 처음 위치는 알고 있다.

각 키에는 00번부터 77번까지 번호가 매겨져 있고, 키들은 서로 다른 점 P0,P1,⋯ ,P7P_0, P_1, \cdots, P_7 위에 놓여 있다. 로봇은 미리 주어진 길이 NN의 수열을 앞에서부터 하나씩 읽으며 키를 섞는다. 정수 2i+2j2^i + 2^j (i<ji < j)로 인코딩된 명령은 ii번 키와 jj번 키의 위치를 바꾼다. 즉 ii번 키가 PkP_k에, jj번 키가 PlP_l에 있을 때 ii번 키는 PlP_l로, jj번 키는 PkP_k로 옮겨진다.

수열에는 유효하지 않은 명령이 들어 있을 수도 있다. 어떤 정수 0≤i<j≤70 \leq i < j \leq 7에 대해서도 x=2i+2jx = 2^i + 2^j를 만족하지 않는 명령 xx가 유효하지 않은 명령이다. 로봇은 유효하지 않은 명령을 인식하면 그 명령을 무시하고 다음 명령으로 넘어간다.

입력

첫째 줄에 명령들의 수열의 길이 NN (1≤N≤200 0001 \leq N \leq 200\,000)이 주어진다.

둘째 줄에 명령들의 수열 a1,a2,⋯ ,aNa_1, a_2, \cdots, a_N이 공백으로 구분되어 주어진다 (0≤ai<256=280 \leq a_i < 256 = 2^8).

셋째 줄에 로봇을 정지시키는 키의 번호 KK (0≤K≤70 \leq K \leq 7)가 주어진다.

출력

모든 명령을 적용한 뒤 로봇을 정지시키는 키가 점 PtP_t (0≤t≤70 \leq t \leq 7) 위에 있을 때, tt의 값을 출력한다.

예제3

  1. 예제 1

    입력
    7
    130 72 130 17 96 66 6
    5
    
    예상 출력
    3
    
  2. 예제 2

    입력
    7
    20 7 68 9 144 156 40
    6
    
    예상 출력
    4
    
  3. 예제 3

    입력
    7
    111 49 235 228 172 77 151
    2
    
    예상 출력
    2