내 유전자는 어디에?

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

요약
항등 유전체에 여러 번의 역전을 순서대로 적용한 뒤, 질의한 유전자 각각의 최종 위치를 출력한다.
난이도

보통10점 중 4점

유형
시뮬레이션, 배열, 구현
정답자
아직 제출이 없습니다

문제

과학자들은 한 종이 다른 종으로 어떻게 진화했는지를, 조상의 유전체(게놈)가 후손의 유전체로 어떻게 변했는지 추적하여 연구한다. 가까운 종들은 여러 유전자를 공유하며, 이들을 비교하는 좋은 방법 중 하나는 공유하는 유전자들의 위치가 어떻게 바뀌었는지를 살펴보는 것이다.

유전체의 유전자 순서를 바꾸는 가장 흔한 돌연변이 중 하나가 뒤집기(reversal) 이다. 유전체를 NN개의 유전자로 이루어진 수열로 보고, 각 유전자를 11부터 NN까지의 정수라고 하자. 뒤집기는 연속한 유전자 구간의 순서를 뒤집는 연산으로, 두 인덱스 (i,j)(i, j) (1≤i≤j≤N1 \le i \le j \le N)로 표현되며 ii번째부터 jj번째까지의 유전자 순서를 뒤집는다. 유전체 [g1,…,gi−1,gi,gi+1,…,gj−1,gj,gj+1,…,gN][g_1, \dots, g_{i-1}, g_i, g_{i+1}, \dots, g_{j-1}, g_j, g_{j+1}, \dots, g_N]에 적용하면 [g1,…,gi−1,gj,gj−1,…,gi+1,gi,gj+1,…,gN][g_1, \dots, g_{i-1}, g_j, g_{j-1}, \dots, g_{i+1}, g_i, g_{j+1}, \dots, g_N]가 된다.

예를 들어 [1, 2, 3, 4, 5, 6, 7]에 뒤집기 (3,6)(3, 6)을 적용하면 [1, 2, 6, 5, 4, 3, 7]이 되고, 이어서 뒤집기 (1,3)(1, 3)을 적용하면 [6, 2, 1, 5, 4, 3, 7]이 된다.

한 과학자가 유전체에 여러 번의 뒤집기를 차례로 적용한 뒤, 몇몇 유전자의 최종 위치를 알고 싶어 한다. 이 질의들에 답하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다.

  • 각 테스트 케이스의 첫 줄에는 유전체의 유전자 개수 NN (1≤N≤500001 \le N \le 50000)이 주어진다. 유전체는 처음에 11부터 NN까지의 정수가 증가하는 순서로 놓여 있다.
  • 둘째 줄에는 적용할 뒤집기의 횟수 RR (0≤R≤10000 \le R \le 1000)이 주어진다.
  • 이어지는 RR개의 줄에는 각각 뒤집기를 나타내는 두 정수 ii, jj (1≤i≤j≤N1 \le i \le j \le N)가 공백 하나로 구분되어 주어진다.
  • 다음 줄에는 질의의 개수 QQ (0≤Q≤1000 \le Q \le 100)가 주어진다.
  • 이어지는 QQ개의 줄에는 각각 최종 위치를 알고 싶은 유전자 하나가 정수로 주어진다.

뒤집기는 주어진 순서대로 적용된다. 입력의 끝은 N=0N = 0인 줄로 표시되며, 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다 Q+1Q + 1개의 줄을 출력한다. 첫 줄에는 Genome 다음에 공백 하나와 테스트 케이스 번호를 출력한다(테스트 케이스 번호는 11부터 시작한다). 그 다음 QQ개의 줄에는 각각 질의한 유전자의 최종 위치를 정수 하나로 출력한다.

예제3

  1. 예제 1

    입력
    9
    1
    3 6
    4
    1
    3
    5
    1
    5
    2
    1 2
    1 5
    2
    5
    2
    0
    
    예상 출력
    Genome 1
    1
    6
    4
    1
    Genome 2
    1
    5
    
  2. 예제 2

    입력
    5
    0
    3
    1
    3
    5
    0
    
    예상 출력
    Genome 1
    1
    3
    5
    
  3. 예제 3

    입력
    6
    1
    1 6
    6
    1
    2
    3
    4
    5
    6
    0
    
    예상 출력
    Genome 1
    6
    5
    4
    3
    2
    1