QOJ.ac

QOJ

Time Limit: 3 s Memory Limit: 256 MB Total points: 100

#5573. 节日礼物重赠

Statistics

镇上有 $n$ 个人。每个人都有一定的容量 $c_i$,表示其家中可以存放礼物的数量。

镇上还存在 $m$ 段友谊。每段友谊都有一个“导师”,对应友谊中索引较大的一方。

最初,镇上没有人拥有礼物。每天,圣诞老人都会来到镇上,指派一名精灵给索引为 1 的镇民送一份礼物。不幸的是,这名精灵还有很多工作要做。

如果精灵给一位镇民送礼物,而该镇民的房子在收到礼物后不会装满,他们就会接受这份礼物。然而,如果该镇民的房子因为这份礼物而恰好装满,他们会扔掉所有的礼物(清空房子),并让精灵给该镇民的每一位导师各送一份礼物,按索引递增的顺序进行。任何剩余的礼物将被扔进镇上的焚化炉。

精灵想知道,如果一位镇民的导师数量多于要送出的礼物数量会怎样,但幸运的是,所有镇民家中的容量都至少等于他们的导师数量。

然而,精灵送礼物的方式还有一些额外的复杂性。当精灵正在完成一个送礼订单时,他们可以尝试给另一个快要装满的房子送礼物,从而引发嵌套请求。在这种情况下,精灵总是会优先处理最近的请求(通过跟踪一个待执行请求的“调用栈”)。可以证明,精灵全天的行动将在有限的操作次数内完成。

圣诞老人注意到镇上的送礼闹剧,担心圣诞节那天镇上将不会剩下任何礼物,因为它们都会被扔进焚化炉。他委托你找出镇上所有房子的礼物数量首次全部为零的那一天。如果这一天永远不会到来,则输出 $-1$。

如果是正数情况,由于答案可能很大,请计算该天数对 $998244353$ 取模的结果。

注意:在整个送礼过程中,没有任何房子的礼物数量会超过其容量。当某人收到礼物并达到容量上限时,他们会立即扔掉所有礼物。

输入格式

第一行包含两个整数 $n, m$ ($1 \le n \le 10^4, 0 \le m \le 3 \cdot 10^4$),分别表示镇上的人数和友谊的数量。

第二行包含 $c_1, c_2, \dots, c_n$ ($2 \le c_i \le 10^5$),表示每个人的房屋容量。

接下来的 $m$ 行,每行包含两个整数 $u_i, v_i$ ($1 \le u_i < v_i \le n$),表示第 $i$ 段友谊中的两人。保证所有列出的友谊都是不同的。

输出格式

输出所有房子的礼物数量首次全部为零的时间。由于该时间可能很大,请输出其对 $998244353$ 取模的值。如果不存在这样的时间,输出 $-1$。

样例

样例输入 1

5 10
4 3 2 2 2
1 3
3 4
1 4
1 5
2 5
2 4
1 2
2 3
3 5
4 5

样例输出 1

24

样例输入 2

3 0
95 13 77

样例输出 2

95

样例输入 3

12 14
6 7 17 16 20 14 17 16 6 11 6 14
4 11
3 5
2 5
9 11
7 12
1 3
5 9
3 7
3 8
4 9
1 9
4 7
2 11
1 12

样例输出 3

8739360

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.