만드는 중입니다

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

탭 UI

면접 대비

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

요약
탭 길이와 화면 길이가 주어질 때, 각 클릭 뒤 탭 줄의 위치를 이동 한계 안에서 구해 출력합니다.
난이도

쉬움10점 중 3점

유형
누적 합, 구현
정답자
아직 제출이 없습니다

문제

탭 UI는 여러 탭이 일렬로 나열되어 있고, 특정 탭을 클릭하면 그 탭의 내용을 확인할 수 있는 UI(User Interface)이다. 화면 안에 있는 탭은 노출되고, 화면 좌우로 벗어난 탭은 노출되지 않는다. 사용자가 화면을 스크롤하면 전체 탭이 함께 이동하여 화면에 노출되는 탭이 바뀐다. 사용자는 화면에 노출된 탭 중에서 원하는 탭을 클릭하여 내용을 확인한다. 각 탭은 길이를 가지며, 인접한 탭 사이에는 간격이 없다고 생각한다.

전체 탭이 왼쪽으로 이동하는 방향을 양의 방향이라 하고, 오른쪽으로 이동하는 방향을 음의 방향이라 하자. 위치 xx에서 양의 방향으로 aa만큼 이동하면 위치는 x+ax+a가 되고, 음의 방향으로 aa만큼 이동하면 위치는 x−ax-a가 된다. 가장 왼쪽에 있는 탭의 왼쪽 끝과 화면의 왼쪽 끝이 일치하는 순간의 위치는 00이다.

  • 위 그림의 초기 화면에서는 왼쪽에서부터 첫 번째 탭인 "DP" 탭이 화면 왼쪽으로 벗어나 있고, 왼쪽에서부터 두 번째 탭인 "그리디" 탭의 왼쪽 끝과 화면의 왼쪽 끝이 일치한다. 이때 위치는 22이다.
  • 초기 화면에서 "그리디" 탭의 길이인 22만큼 양의 방향으로 이동하면 "그리디" 탭이 화면 왼쪽으로 벗어나고, 왼쪽에서부터 세 번째 탭인 "그래프" 탭의 왼쪽 끝과 화면의 왼쪽 끝이 일치한다. 이때 위치는 44가 된다.
  • 초기 화면에서 "DP" 탭의 길이인 22만큼 음의 방향으로 이동하면 "DP" 탭의 왼쪽 끝과 화면의 왼쪽 끝이 일치한다. 이때 위치는 00이 된다.

탭 UI의 특징은 기본적으로 특정 탭을 클릭하면 해당 탭의 중앙과 화면의 중앙이 일치하도록 전체 탭이 이동한다는 것이다. 그러나 이동에 제한이 있으므로, 어떤 탭은 클릭해도 해당 탭의 중앙과 화면의 중앙이 일치하지 않을 수 있다.

탭의 이동은 다음의 세 가지 제한을 가진다.

  • 가장 왼쪽에 있는 탭의 왼쪽 끝과 화면의 왼쪽 끝이 일치하는 순간 더 이상 음의 방향으로 이동하지 않는다.
  • 가장 오른쪽에 있는 탭의 오른쪽 끝과 화면의 오른쪽 끝이 일치하는 순간 더 이상 양의 방향으로 이동하지 않는다.
  • 모든 탭의 길이의 합이 화면의 길이보다 작다면, 가장 왼쪽에 있는 탭의 왼쪽 끝과 화면의 왼쪽 끝이 일치하는 순간 더 이상 양의 방향으로 이동하지 않는다.

탭을 클릭하면 해당 탭의 중앙이 화면의 중앙과 일치하도록 이동하고, 더 이상 이동할 수 없다면 그 위치에서 멈춘다. 사용자가 탭을 클릭한 순서대로, 각 탭을 클릭하고 난 직후의 위치를 구하시오.

입력

첫째 줄에 탭의 개수 NN이 주어진다. (1≤N≤100 000)(1\leq N \leq 100\,000)

둘째 줄부터 NN개의 줄에 걸쳐 ii번째 줄에는 ii번 탭의 길이 lil_{i}가 정수로 주어진다. ii번 탭은 왼쪽에서부터 ii번째 탭이다. (1≤li≤10 000)(1\leq l_{i} \leq 10\,000)

그다음 줄에 화면의 길이 LL이 정수로 주어진다. (1≤L≤109)(1\leq L \leq 10^9)

그다음 줄에 사용자가 탭을 클릭하는 횟수 QQ가 주어진다. (1≤Q≤500 000)(1\leq Q \leq 500\,000)

그다음 줄부터 QQ개의 줄에 걸쳐 사용자가 클릭한 탭의 번호가 탭을 클릭한 순서대로 주어진다.

출력

사용자가 탭을 클릭한 순서대로, 각 줄에 각 탭을 클릭하고 난 직후의 위치를 소수점 셋째 자리에서 버림하여 출력한다.

예제2

  1. 예제 1

    입력
    10
    2
    2
    2
    2
    2
    2
    2
    2
    2
    2
    10
    10
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    예상 출력
    0.00
    0.00
    0.00
    2.00
    4.00
    6.00
    8.00
    10.00
    10.00
    10.00
    
  2. 예제 2

    입력
    4
    2
    2
    2
    2
    10
    4
    1
    2
    3
    4
    
    예상 출력
    0.00
    0.00
    0.00
    0.00