개미 나라

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

요약
부모 마을을 복제해 구간에 값을 더하는 영속적 자료구조를 만들고, 이전 답에 따라 파라미터가 바뀌는 온라인 구간 합 질의에 답하는 문제입니다.
난이도

어려움10점 중 8점

유형
세그먼트 트리, 누적 합, 트리, 이분 탐색
정답자
아직 제출이 없습니다

문제

개미 나라는 계속 확장된다. 새로운 마을은 다음과 같이 세워진다. 어떤 마을이 너무 붐비면 주민 일부가 떠나 새 마을을 세운다(떠날 때 항상 일부 개미는 원래 마을에 남는다). 처음에 개미 나라에는 마을이 단 하나뿐이다.

오래된 전통에 따라 모든 마을에는 정확히 MM개의 개미굴이 있어야 하며, 개미굴에는 11부터 MM까지 번호가 매겨져 있고 각 개미굴에 사는 개미 수(수용량)를 알고 있다. 새 마을이 세워질 때 MM개의 개미굴이 한꺼번에 만들어진다. 전통을 존중하기에, 새 마을은 자신이 떠나온 마을을 본떠 만들어진다. 즉 모든 kk에 대해 새 마을의 kk번 개미굴은 원래 마을의 kk번 개미굴과 같은 수용량으로 시작한다.

한편 혁신을 좋아하는 개미들은 설계를 조금 바꾼다. 새 마을이 세워지는 순간, 촌장들은 LL번부터 RR번까지(양 끝 포함)의 개미굴 수용량을 각각 같은 값 VV만큼 늘리라고 지시한다.

새 마을의 개미굴이 모두 만들어지고 나면, 그 마을의 명예 구역은 ii번부터 jj번까지(양 끝 포함)의 개미굴로 이루어진다. 촌장들은 이 명예 구역이 총 몇 마리의 개미를 수용할 수 있는지 궁금해한다.

새 마을이 세워질 때마다 이 질문에 답하는 프로그램을 작성하라.

입력

첫째 줄에 두 정수 NN과 MM이 주어진다. NN은 모든 새 마을이 세워진 뒤 개미 나라에 있는 마을의 총 개수이고, MM은 각 마을의 개미굴 개수이다.

둘째 줄에 MM개의 정수 A1,A2,…,AMA_1, A_2, \ldots, A_M이 주어진다. AiA_i는 첫 번째 마을의 ii번 개미굴의 수용량이다.

이어지는 N−1N-1개의 줄에는 각각 새 마을 하나가 세워지는 과정을 나타내는 여섯 정수 P,X,Y,V,Z,TP, X, Y, V, Z, T가 주어진다.

  • PP는 새 마을을 세울 기준이 되는 마을의 번호이다. 첫 번째 마을의 번호는 11이다. 새로 세워지는 마을은 아직 마을 번호로 쓰이지 않은 가장 작은 양의 정수를 번호로 받는다(따라서 마을은 세워지는 순서대로 2,3,…,N2, 3, \ldots, N번이 된다).
  • 값 L,R,i,jL, R, i, j는 갱신되는 값 SS로부터 다음과 같이 계산된다.
    • L=((X+S) mod M)+1L = ((X + S) \bmod M) + 1
    • R=((Y+S) mod M)+1R = ((Y + S) \bmod M) + 1
    • i=((Z+S) mod M)+1i = ((Z + S) \bmod M) + 1
    • j=((T+S) mod M)+1j = ((T + S) \bmod M) + 1

SS는 00에서 시작한다. 새 마을이 세워지면 SS는 그 마을의 답(명예 구역, 즉 ii번부터 jj번까지 개미굴의 총 수용량)으로 갱신되고, 이 갱신된 SS가 다음 마을의 매개변수를 계산하는 데 쓰인다. 모든 마을에 대해 L≤RL \le R이고 i≤ji \le j임이 보장된다.

출력

새로 세워지는 각 마을에 대해, 그 마을의 명예 구역이 수용할 수 있는 개미의 총 수를 한 줄에 하나씩 정수로 출력한다.

제한

  • 1≤N,M≤1000001 \le N, M \le 100000
  • 모든 ii에 대해 0≤Ai≤1000000 \le A_i \le 100000, 그리고 모든 마을 건설에 대해 0≤V≤1000000 \le V \le 100000
  • 새로 세워지는 모든 마을에 대해 1≤L≤R≤M1 \le L \le R \le M
  • 새로 세워지는 모든 마을에 대해 1≤i≤j≤M1 \le i \le j \le M
  • 0≤X,Y,Z,T<M0 \le X, Y, Z, T < M

참고

풀이 예시(첫 번째 예제와 일치한다). 마을 11의 수용량은 {3,6,7,5}\{3, 6, 7, 5\}이다.

  • 마을 11에서 세운 마을 2: S=0S = 0이므로 L=3,R=4,V=1,i=1,j=2L = 3, R = 4, V = 1, i = 1, j = 2. 개미굴 33–44에 11을 더하면 {3,6,8,6}\{3, 6, 8, 6\}이 된다. 명예 구역(개미굴 11–22)의 수용량은 3+6=93 + 6 = 9이므로 답은 99이고 SS는 99가 된다.
  • 마을 22에서 세운 마을 3: S=9S = 9이므로 L=((1+9) mod 4)+1=3,R=4,i=((2+9) mod 4)+1=4,j=4,V=6L = ((1+9) \bmod 4)+1 = 3, R = 4, i = ((2+9) \bmod 4)+1 = 4, j = 4, V = 6. 마을 22의 {3,6,8,6}\{3, 6, 8, 6\}에서 개미굴 33–44에 66을 더하면 {3,6,14,12}\{3, 6, 14, 12\}가 된다. 명예 구역(개미굴 44)의 수용량은 1212이므로 답은 1212이고 SS는 1212가 된다.
  • 마을 11에서 세운 마을 4: S=12S = 12이므로 L=1,R=3,i=1,j=4,V=8L = 1, R = 3, i = 1, j = 4, V = 8. 마을 11의 {3,6,7,5}\{3, 6, 7, 5\}에서 개미굴 11–33에 88을 더하면 {11,14,15,5}\{11, 14, 15, 5\}가 된다. 명예 구역(개미굴 11–44)의 수용량은 11+14+15+5=4511 + 14 + 15 + 5 = 45이므로 답은 4545이다.

각 새 마을은 세울 기준이 된 마을의 독립적인 복사본이므로, 한 마을을 세우는 일이 이전 마을들의 수용량을 바꾸지 않는다.

예제3

  1. 예제 1

    입력
    4 4
    3 6 7 5
    1 2 3 1 0 1
    2 1 2 6 2 2
    1 0 2 8 0 3
    
    예상 출력
    9
    12
    45
    
  2. 예제 2

    입력
    2 1
    17611
    1 0 0 61898 0 0
    
    예상 출력
    79509
    
  3. 예제 3

    입력
    8 6
    31190 77678 71333 17094 48490 79157
    1 5 5 61503 4 4
    2 0 0 70906 3 0
    3 0 1 30398 2 2
    2 2 3 88003 3 3
    1 4 2 4064 3 5
    3 2 4 93602 4 4
    7 5 0 17583 1 1
    
    예상 출력
    48490
    285501
    140660
    228663
    188329
    234262
    234262