수도꼭지

면접 대비

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

요약
수도꼭지마다 물의 양 변경과 열림/잠김 토글을 처리하면서 열린 수도꼭지 물의 양 합을 매 조작 후 출력한다.
난이도

쉬움10점 중 3점

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

문제

물탱크와 연결된 NN개의 수도꼭지가 있습니다. 이 수도꼭지는 나사와 토글 버튼으로 이루어져 있습니다. 나사를 돌려서 나오는 물의 양을 조절할 수 있고, 토글 버튼을 눌러서 수도꼭지를 열거나 잠글 수 있습니다. 물탱크에 담기는 물의 양은 열려있는 수도꼭지들에서 내보내는 물의 양의 합입니다.

구체적으로는 수도꼭지에 다음 조작을 할 수 있습니다.

  1. 나사를 돌려서 수도꼭지가 열려 있을 때 11분에 xx리터의 물을 내보내도록 합니다.
  2. 토글 버튼을 누릅니다. 수도꼭지가 열려 있으면 잠그고, 잠겨있으면 엽니다.

가장 처음에 모든 수도꼭지는 열려있으며, ii번째 수도꼭지는 11분에 A_iA\_i리터의 물을 내보내고 있습니다. 이 수도꼭지들을 QQ번 조작할 것입니다. 가장 처음에, 그리고 매 조작 이후에 11분 동안 탱크에 담기는 물의 양을 계산하세요.

입력

첫 줄에 수도꼭지의 수 NN이 주어집니다. (1≤N≤200,000)(1\leq N\leq 200\\, 000)

둘째 줄에 처음에 수도꼭지에서 나오는 물의 양을 의미하는 A_1,A_2,⋯ ,A_NA\_1,A\_2,\cdots ,A\_N이 공백으로 구분되어 주어집니다. (1≤A_i≤109)(1\le A\_i\le 10^9)

셋째 줄에 조작의 수 QQ가 주어집니다. (1≤Q≤200,000)(1\leq Q\leq 200\\, 000)

넷째 줄부터 QQ개의 줄에 조작이 한 줄에 하나씩 주어집니다. 각 조작은 다음 중 하나로 주어집니다.

  • 1,i,x1,i,x가 공백으로 구분되어 주어집니다. 이는 ii번째 수도꼭지의 나사를 돌려서 11분에 xx리터의 물을 내보내도록 했다는 의미입니다. (1≤i≤N;(1\le i\le N; 1≤x≤109)1\le x\le 10^9)
  • 2,i2,i가 공백으로 구분되어 주어집니다. 이는 ii번째 수도꼭지의 토글 버튼을 눌렀다는 의미입니다. (1≤i≤N)(1\leq i\leq N)

입력으로 주어지는 모든 수는 정수입니다.

출력

총 (Q+1)(Q+1)개의 줄을 출력합니다. 첫 줄에는 아무 조작도 하지 않았을 때 11분 동안 탱크에 담기는 물의 양을 리터 단위로 출력하세요. 다음 QQ개의 줄의 ii번째 줄에는, ii번째 조작까지 끝낸 이후 11분 동안 탱크에 담기는 물의 양을 리터 단위로 출력하세요.

힌트

입출력 양이 많으므로 빠른 입출력 방법을 사용하는 것을 권장합니다.

예제2

  1. 예제 1

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

    입력
    5
    1000000000 1000000000 1000000000 1000000000 1000000000
    4
    1 1 999999999
    2 1
    1 1 999999998
    2 1
    
    예상 출력
    5000000000
    4999999999
    4000000000
    4000000000
    4999999998