셋이 한 팀

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

요약
한 사람의 모든 능력치를 X만큼 올리는 질의가 Q번 주어질 때, 매 질의 후 각 i번 능력치의 세 사람 최댓값 합을 구한다.
난이도

보통10점 중 6점

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

문제

Note: 이 문제는 C. 둘이 한 팀 문제의 어려운 버전입니다. 두 문제를 모두 읽어보는 것을 권장합니다.

Alice, Bob, Charlie 세 명이 한 팀을 이루어 프로그래밍 대회에 참가하려고 한다.

프로그래밍 대회에 관련된 능력치는 총 NN개가 있으며, 11부터 NN까지의 정수 번호가 붙어 있다. 각 사람의 능력치는 길이 NN의 정수 수열로 표현할 수 있으며, “팀의 능력치”는 NN개의 능력치 각각에 대해 개인 능력치의 최댓값을 모두 합한 값이다.

Alice, Bob, Charlie의 ii번 능력치 값을 각각 A_iA\_i, B_iB\_i, C_iC\_i 라고 하면, “팀의 능력치”는 ∑_i=1Nmax⁡(A_i,B_i,C_i)\sum\_{i=1}^{N}{\max(A\_i,B\_i,C\_i)} 가 된다.

대회에서 좋은 성적을 거두기 위해, 셋이서 각자 훈련을 진행하려고 한다. 훈련은 총 QQ번에 걸쳐 진행하는데, 이중 jj번째 훈련에서는 세 사람 중 한 명의 모든 능력치가 X_jX\_j 만큼 증가하게 된다.

각 훈련이 끝난 후 팀의 능력치 값이 얼마인지를 알고 싶다. 이 값을 구하여 보자.

입력

첫 번째 줄에 능력치의 개수 NN이 주어진다.

두 번째 줄부터 NN개의 줄에 걸쳐, 이 중 ii번째 줄에는 Alice, Bob, Charlie의 ii번 능력치의 초깃값을 나타내는 정수 A_iA\_i, B_iB\_i, C_iC\_i가 공백으로 구분되어 주어진다.

N+2N+2번째 줄에 훈련을 한 횟수 QQ가 주어진다.

N+3N+3번째 줄부터 QQ개의 줄에 걸쳐, 이 중 jj번째 줄에는 jj번째 훈련에 대한 정보를 나타내는 문자와 정수 X_jX\_j가 공백으로 구분되어 주어진다. 아래 세 가지 형식 중 하나로 주어진다.

  • A X_jX\_j: Alice의 모든 능력치 값이 X_jX\_j만큼 증가한다.
  • B X_jX\_j: Bob의 모든 능력치 값이 X_jX\_j만큼 증가한다.
  • C X_jX\_j: Charlie의 모든 능력치 값이 X_jX\_j만큼 증가한다.

출력

총 QQ개의 줄에 걸쳐, 각 훈련 이후 팀의 능력치 값을 줄마다 정수 하나로 출력한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 1≤N≤250,0001\le N\le 250\\, 000
  • 1≤A_i,B_i,C_i≤1061\le A\_i,B\_i,C\_i\le 10^6
  • 1≤Q≤250,0001\le Q\le 250\\, 000
  • 1≤X≤1061\le X\le 10^6

예제2

  1. 예제 1

    입력
    2
    1 3 5
    4 2 3
    3
    B 3
    C 1
    A 2
    
    예상 출력
    11
    11
    12
    
  2. 예제 2

    입력
    5
    2 3 6
    5 4 3
    9 1 5
    1 8 6
    3 7 7
    6
    A 3
    B 6
    C 2
    B 4
    C 8
    A 9
    
    예상 출력
    41
    58
    58
    74
    80
    89