만드는 중입니다

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

자료구조 마스터

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

요약
A, B, C 중 한 곳에 값을 추가할 때마다 세 수열에서 하나씩 고른 모든 조합 (x, y, z)의 구간 최댓값을 더한 합을 998244353으로 나눈 나머지로 출력합니다.
난이도

어려움10점 중 8점

유형
세그먼트 트리, 정렬, 배열
정답자
아직 제출이 없습니다

문제

오늘 에스마안은 자신이 평범하지 않다는 것을 세상에 증명하기로 했다. 그는 자료구조 마스터가 되기 위한 시험을 보러 갔다. 그런데 시험의 첫 문제에서 막히고 말았다. 이 문제를 풀도록 도와주자.

정수 수열 a1,a2,…,ana_1, a_2, \ldots, a_n이 주어진다. 또한 비어 있는 수열 AA, BB, CC가 세 개 있다.

  • f(ℓ,r)f(\ell, r)은 aℓ,aℓ+1,…,ara_{\ell}, a_{\ell + 1}, \ldots, a_r 중 최댓값이다.
  • g(p1,p2,p3)g(p_1, p_2, p_3)는 f(min⁡(p1,p2,p3),max⁡(p1,p2,p3))f(\min(p_1, p_2, p_3), \max(p_1, p_2, p_3))이다.
  • SS는 가능한 모든 (i,j,k)(i, j, k) 조합에 대해 g(Ai,Bj,Ck)g(A_i, B_j, C_k)를 더한 값이다. 여기서 1≤i≤size(A)1 \le i \le \mathrm{size}(A), 1≤j≤size(B)1 \le j \le \mathrm{size}(B), 1≤k≤size(C)1 \le k \le \mathrm{size}(C)이다.

다음 형식의 질의를 qq개 처리해야 한다.

  • X val: 수열 XX의 끝에 valval을 추가한다.

각 질의를 처리한 뒤 SS를 998244353998244353으로 나눈 나머지를 출력한다.

입력

첫째 줄에 두 정수 nn과 qq (1≤n,q≤1051 \le n, q \le 10^5)가 주어진다. 둘째 줄에는 nn개의 정수 a1,a2,…,ana_1, a_2, \ldots, a_n (1≤ai≤1051 \le a_i \le 10^5)이 주어진다. 이후 qq개의 줄에 X val 형식의 질의가 주어진다. 여기서 XX는 A, B, C 중 하나이고, 1≤val≤n1 \le val \le n이다.

출력

각 질의를 처리한 직후의 SS를 998244353998244353으로 나눈 나머지를 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    5 5
    2 2 9 1 10
    A 5
    A 1
    C 4
    B 1
    C 5
    
    예상 출력
    0
    0
    0
    19
    39
    
  2. 예제 2

    입력
    10 10
    5 6 5 5 10 4 8 9 5 4
    C 8
    C 8
    B 8
    B 2
    A 7
    C 7
    C 4
    B 4
    A 7
    B 5
    
    예상 출력
    0
    0
    0
    0
    38
    57
    77
    117
    234
    314