QOJ.ac

QOJ

Time Limit: 15 s Memory Limit: 512 MB Total points: 100

#984. 행복

Statistics

당신은 지역 놀이공원에서 회전하는 찻잔 놀이기구를 발견하고, 이 놀이기구에 대한 몇 가지 흥미로운 점을 관찰했습니다.

이 놀이기구는 회전판 둘레에 동일한 간격으로 배치된 $N$개의 원형 찻잔으로 구성됩니다. $i = 0, 1, \dots, N - 1$에 대하여, $i$번째 찻잔은 처음에 북쪽에서 시계 방향으로 $i \cdot \frac{360}{N}$도인 지점에 중심이 위치합니다.

회전판은 찻잔들이 서로 부딪히지 않고 모두 들어갈 수 있을 만큼 충분히 큽니다. 각 찻잔 안에는 $N$명의 사람이 찻잔 둘레에 동일한 간격으로 배치되어 있습니다. $j = 0, 1, \dots, N - 1$에 대하여, $j$번째 사람은 처음에 북쪽에서 시계 방향으로 $j \cdot \frac{360}{N}$도인 지점에 위치합니다. 찻잔은 충분히 크므로 사람들을 점으로 간주합니다. 각 찻잔에서 $j = 0, 1, \dots, N - 1$에 대하여, $j$번째 사람은 행복도 값 $v_j$를 가집니다.

서로 다른 찻잔에 있더라도 초기 위치가 같은 사람들은 동일한 행복도 값을 가진다는 점에 유의하십시오.

$Q$ 밀리초 동안, 매 밀리초마다 다음 두 가지 이벤트 중 하나가 발생합니다.

  • 회전판이 시계 방향으로 $k \cdot \frac{360}{N}$도 회전합니다. 찻잔들은 이를 보상하여 외부를 기준으로 한 방향이 영향을 받지 않도록 합니다.
  • 현재 북쪽에서 시계 방향으로 $q \cdot \frac{360}{N}$도인 지점에 있는 찻잔이 중심을 기준으로 시계 방향으로 $k \cdot \frac{360}{N}$도 회전합니다. 다른 찻잔들은 영향을 받지 않습니다.

당신은 초기 상태와 매 이벤트가 발생한 후 모든 사람의 총 행복도를 계산하고자 합니다. 총 행복도는 각 개인의 행복도의 합입니다. 행복도 값 $w$를 가진 사람이 두 찻잔의 중심을 잇는 직선 위에 있다면, 그 사람의 행복도는 $w$입니다. 그렇지 않으면 행복도는 0입니다. 총 행복도는 매우 클 수 있으므로 $998\,244\,353$으로 나눈 나머지를 출력하십시오.

참가자들의 총 행복도를 추적하는 프로그램을 작성하십시오!

입력

첫 번째 줄에는 두 정수 $N$과 $Q$ ($2 \le N \le 200\,000$, $1 \le Q \le 200\,000$)가 주어집니다.

다음 줄에는 $N$개의 정수, 값 $v_0, v_1, \dots, v_{N-1}$ ($1 \le v_i \le 1\,000\,000$)이 주어집니다.

다음 $Q$개의 줄은 이벤트를 설명합니다. 각 줄은 “1 $k$” ($1 \le k \le N$) 형식으로, 회전판이 시계 방향으로 $k \cdot \frac{360}{N}$도 회전함을 나타내거나, “2 $q$ $k$” ($0 \le q < N$, $1 \le k \le N$) 형식으로, 현재 (위쪽에서) $q \cdot \frac{360}{N}$도 지점에 있는 찻잔이 중심을 기준으로 시계 방향으로 $k \cdot \frac{360}{N}$도 회전함을 나타냅니다.

출력

$Q + 1$개의 줄을 출력하며, 각 줄에는 0, 1, 2, $\dots, Q$번째 이벤트 이후의 총 행복도가 포함되어야 합니다.

행복도를 $998\,244\,353$으로 나눈 나머지를 출력하는 것을 잊지 마십시오.

예제

입력 1

6 3
1 2 4 8 16 32
2 1 4
1 5
2 4 2

출력 1

189
168
210
252

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.