만드는 중입니다

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

물통

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

요약
용량이 x인 물탱크에 N번의 추가 또는 제거 작업이 주어지고, 각 질의의 시작 양 y에 대해 모든 작업을 마친 뒤 남은 물의 양을 구합니다.
난이도

보통10점 중 6점

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

문제

용량이 xx인 물통과 정수로 이루어진 수열 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 주어진다. 물통에 물을 채우거나 빼는 작업을 총 NN번 수행하고자 한다.

AiA_i가 양수라면 ii번째 작업은 물통에 물을 AiA_i만큼 채우는 작업이고, 아니라면 물통에서 물을 ∣Ai∣|A_i|만큼 뺀다.

  • 용량보다 많은 물을 채우려고 하면, 물은 물통의 용량까지만 찬다.
  • 현재 남은 물의 양보다 많은 물을 빼려고 하면, 남아 있는 양만큼만 뺀다.

다음과 같은 쿼리가 총 MM번 주어진다.

  • yy: 처음에 물을 yy만큼 채우고 NN개의 작업을 순서대로 수행한 뒤, 물통에 채워져 있는 물의 양을 출력한다.

입력

첫째 줄에 용량을 나타내는 정수 xx와 수열의 길이 NN이 공백을 사이에 두고 주어진다. (1≤x≤1013,1≤N≤105)(1\leq x\leq 10^{13}, 1\leq N \leq 10^5)

둘째 줄에 정수로 이루어진 수열 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 주어진다. (−x≤Ai≤x)(-x \leq A_i \leq x)

셋째 줄에 쿼리의 개수를 나타내는 정수 MM이 주어진다. (1≤M≤105)(1\leq M \leq 10^5)

넷째 줄부터 MM개의 줄에 걸쳐 정수 yy가 주어진다. (0≤y≤x)(0 \leq y \leq x)

출력

쿼리가 주어질 때마다 그 답을 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

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

    입력
    1 1
    -1
    1
    1
    
    예상 출력
    0