만드는 중입니다

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

뒤집기

면접 대비

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

요약
배열의 앞부분 또는 뒷부분을 뒤집는 연산을 여러 번 적용한 뒤, 처음 K번째에 있던 원소가 최종적으로 몇 번째 위치로 이동하는지 구한다.
난이도

보통10점 중 6점

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

문제

NN개의 수로 이루어진 배열 AA가 있다. 배열의 인덱스는 1부터 시작한다. 이 배열에 연산을 MM번 적용할 때, 가장 처음에 KK번째에 있던 수가 모든 연산이 끝난 뒤 몇 번째 위치로 이동하는지 구하는 프로그램을 작성하시오.

배열에 적용할 수 있는 연산은 0이 아닌 정수 ii 하나로 이루어져 있다. ii가 양의 정수인 경우에는 배열 AA의 처음 ii개의 순서를 뒤집고, ii가 음의 정수인 경우에는 마지막 −i-i개의 순서를 뒤집는다.

예를 들어 N=5N = 5이고 A=[1,3,2,4,5]A = [1, 3, 2, 4, 5]인 경우에 연산 33을 적용하면 배열 AA는 [2,3,1,4,5][2, 3, 1, 4, 5]가 된다. 여기에 연산 −4-4를 적용하면 뒤의 네 개의 순서가 뒤집혀 [2,5,4,1,3][2, 5, 4, 1, 3]이 된다. 가장 처음에 1번째 위치에 있던 수는 4번째 위치로 이동하고, 3번째 위치에 있던 수는 1번째 위치로 이동한다.

입력

첫째 줄에 배열 AA의 크기 NN (1≤N≤100,0001 \le N \le 100{,}000)과 위치 KK (1≤K≤N1 \le K \le N), 연산의 개수 MM (1≤M≤100,0001 \le M \le 100{,}000)이 주어진다.

둘째 줄에는 배열 AA에 들어있는 수가 1번째 수부터 순서대로 주어진다. 배열에 들어있는 수는 100,000보다 작거나 같은 자연수이다. 배열에는 같은 수가 여러 번 들어있을 수도 있다.

셋째 줄부터 MM개의 줄에는 연산을 나타내는 정수 ii가 한 줄에 하나씩 주어진다. ii는 절댓값이 NN보다 작거나 같은 0이 아닌 정수이다.

출력

첫째 줄에 KK번째 수가 연산 MM번이 완료된 후에 몇 번째 위치로 이동했는지 출력한다.

예제5

  1. 예제 1

    입력
    5 1 2
    1 3 2 4 5
    3
    -4
    
    예상 출력
    4
    
  2. 예제 2

    입력
    5 3 2
    5 5 5 5 5
    3
    -4
    
    예상 출력
    1
    
  3. 예제 3

    입력
    4 4 8
    10 20 15 25
    1
    -2
    3
    -4
    -1
    2
    -3
    4
    
    예상 출력
    3
    
  4. 예제 4

    입력
    10 1 6
    9 8 1 2 8 7 3 4 6 6
    9
    -9
    8
    -8
    7
    -7
    
    예상 출력
    1
    
  5. 예제 5

    입력
    5 2 5
    7 6 5 4 3
    3
    -3
    3
    -3
    3
    
    예상 출력
    2