아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

조커의 카드 마술

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

요약
0이 아닌 정수 카드 열에서 갱신이 일어날 때마다 양수 합과 음수 합으로 각 값을 나눈 누적합이 최대가 되는 가장 작은 위치를 구한다.
난이도

어려움10점 중 8점

유형
세그먼트 트리, 누적 합, 그리디, 수학
정답자
아직 제출이 없습니다

문제

조커는 수학이 필요한 새 카드 마술을 준비한다. 계산을 도와주자.

0이 아닌 정수 aia_i가 적힌 카드 nn장이 한 줄로 놓여 있다. 양수의 합을 PP, 음수의 합을 NN이라고 하자. 카드 ii의 무게 wiw_i는 ai>0a_i > 0이면 ai/Pa_i / P, ai<0a_i < 0이면 ai/∣N∣a_i / |N|이다.

si=∑j=1iwjs_i = \sum_{j=1}^{i} w_j로 두자. 조커는 sis_i가 가장 큰 위치 ii를 알고 싶다. 그런 ii가 여러 개면 가장 작은 것을 고른다.

배열이 고정된 마술은 지루하다. 조커는 카드에 적힌 수를 바꾸고, 한 번 바꿀 때마다 sis_i가 가장 큰 위치를 다시 알고 싶어 한다.

입력

첫째 줄에 카드의 수 nn과 변경 횟수 mm이 주어진다 (1≤n,m≤500001 \le n, m \le 50000).

둘째 줄에 처음 카드에 적힌 정수 aia_i가 nn개 주어진다 (−109≤ai≤109-10^9 \le a_i \le 10^9, ai≠0a_i \ne 0).

다음 mm개 줄에 정수 pip_i와 viv_i가 하나씩 주어진다. 위치 pip_i에 있는 카드의 수가 viv_i로 바뀐다는 뜻이다 (1≤pi≤n1 \le p_i \le n, −109≤vi≤109-10^9 \le v_i \le 10^9, vi≠0v_i \ne 0).

어느 순간에도 양수가 적힌 카드와 음수가 적힌 카드가 각각 한 장 이상 있다. 양수의 합은 10910^9을 넘지 않고, 음수의 절댓값의 합도 10910^9을 넘지 않는다.

출력

m+1m+1개 줄을 출력한다.

첫째 줄에는 처음 수열에서 sis_i가 가장 큰 위치를 출력한다. 이어지는 mm개 줄에는 각 변경 직후 sis_i가 가장 큰 위치를 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

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

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