시간 제한메모리 제한제출정답맞힌 사람정답 비율
3 초 1024 MB393321.429%

문제

길이가 짝수 $N$인 수열 $A$가 있다. 초기에 $A$의 모든 원소는 $0$이다. 다음 쿼리를 처리하라.

  • 1 l r b : $A_l, A_{l+1}, \cdots, A_r$에 각각 $b$를 더한다.
  • 2 l : $1$ 이상 $N$ 이하의 모든 정수 $i$에 대해 $A_i$를 $A_{l+ \lfloor \frac{i-1}{2} \rfloor}$로 바꾼다. 이 작업은 모든 $i$에 대해서 동시에 이루어진다.
  • 3 : 현재까지 시행한 모든 1번, 2번 종류의 쿼리를 순서대로 다시 시행한다. 이때, 3번 종류의 쿼리로 인해 시행된 1번, 2번 종류의 쿼리도 포함한다.
  • 4 l r : $\sum_{i=l}^r A_i$의 값을 $998\,244\,353$으로 나눈 나머지를 출력한다.

입력

첫 번째 줄에 수열의 길이 $N$과 쿼리의 수 $Q$가 공백을 사이에 두고 주어진다.

두 번째 줄부터 $Q$줄에 걸쳐 각 줄에 하나씩 쿼리가 주어진다.

출력

4번 종류의 쿼리가 들어올 때마다 답을 한 줄에 하나씩 출력하라.

제한

  • $2 \leq N \leq 100\,000$, $N$은 짝수
  • $1 \leq Q \leq 100\,000$
  • 모든 1번 종류의 쿼리에 대해서 $1 \le l \le r \le N$, $1 \le b \le 998\,244\,352$
  • 모든 2번 종류의 쿼리에 대해서 $1 \le l \le \frac{N}{2}+1$
  • 모든 4번 종류의 쿼리에 대해서 $1 \le l \le r \le N$
  • 입력에는 적어도 하나의 4번 종류의 쿼리가 존재한다.
  • 주어지는 모든 수는 정수이다.

예제 입력 1

6 9
1 1 5 2
1 5 6 3
2 4
4 1 1
4 2 2
4 3 3
4 4 4
4 5 5
4 6 6

예제 출력 1

2
2
5
5
3
3

세 번째 쿼리를 실행하기 전 배열은 $[2, 2, 2, 2, 5, 3]$이고, 실행하게 되면 $[2, 2, 5, 5, 3, 3]$으로 바뀐다.

예제 입력 2

6 11
1 1 5 2
1 5 6 3
3
3
3
4 1 1
4 2 2
4 3 3
4 4 4
4 5 5
4 6 6

예제 출력 2

16
16
16
16
40
24

첫 번째, 두 번째 쿼리는 이후 등장하는 세 번의 3번 종류의 쿼리로 인해 총 8회 시행된다.

예제 입력 3

8 8
1 2 5 1
2 3
3
4 1 8
1 2 5 2
2 4
3
4 1 8

예제 출력 3

14
42
  • 첫 두 개의 쿼리를 시행하면 배열은 $[1, 1, 1, 1, 1, 1, 0, 0]$이 된다.
  • 세 번째 쿼리인 3번 종류의 쿼리를 시행하면 지금까지 시행한 1, 2번 종류의 쿼리인 첫 번째, 두 번째 쿼리가 다시 시행되며, 배열은 $[2, 2, 2, 2, 2, 2, 1, 1]$이 된다.
  • 여섯 번째 쿼리까지 시��하면 배열은 $[4, 4, 4, 4, 2, 2, 1, 1]$이 된다.
  • 일곱 번째 쿼리인 3번 종류의 쿼리를 시행하면 지금까지 시행한 1번, 2번 종류의 쿼리인 첫 번째, 두 번째, 첫 번째, 두 번째, 다섯 번째, 여섯 번째 쿼리가 순서대로 다시 시행된다. 이 경우 배열은 $[8, 8, 6, 6, 4, 4, 3, 3]$이 된다.

출처

School > 경기과학고등학교 > 나는코더다 송년대회 > 나는코더다 2023 송년대회 J번