#P14930. [uoi2019-2s]哥萨克·乌斯与波托科兰迪亚
[uoi2019-2s]哥萨克·乌斯与波托科兰迪亚
题目描述
波托科兰迪亚有 栋房子,第 栋房子中住着 名居民。这些房子之间有 条道路,每条道路连接房子 与 。我们定义每个居民的幸福值为他能够见到的居民数量(包括他自己)。一名居民可以见到另一名居民,当且仅当对方与他在同一栋房子,或者可以沿着波托科兰迪亚的道路从他的房子到达对方所在的房子。
在最近的 天中,每天发生以下两类事件之一:
- 房子 与 之间的道路被雪堵住,因此之后不能再通过;
- 第 栋房子中的 名居民乘直升机去波托科兰迪亚以外的远方亲戚家做客。
波托科兰迪亚的居民写信给哥萨克·乌斯,请他告诉他们最后一天是多少,使得第 栋房子中任意一名居民与第 栋房子中任意一名居民的幸福值之和至少为 。
可以认为所有事件都在每天的第一瞬间立即发生。若在所有事件开始之前,幸福值之和就小于 ,输出 。若幸福值之和只在第一次事件发生前不小于 ,输出 。若在第 次事件后幸福值之和变得小于要求,则输出 。若所有事件结束后幸福值之和仍至少为 ,则输出 。
由于哥萨克·乌斯很忙,而波托科兰迪亚的居民很多,他请你帮忙回答所有信件。
输入格式
第一行包含四个整数 (),分别表示房子数、道路数、天数和消息数。
下一行包含 个整数 (),表示第 栋房子中的居民数量。
接下来 行,每行包含两个整数 (,),表示一条道路连接的两栋房子。保证没有重边。
接下来 行,每行按下列两种格式之一描述一个事件:
1 g_i h_i():表示被雪堵住的道路。保证这条道路存在,且之前没有被堵住过。2 w_i k_i(,):表示房子编号以及离开该房子的居民数。保证任意时刻每栋房子中至少有一名居民。
接下来 行,每行包含三个整数 (,)。
输出格式
输出 行,每行表示对应询问的答案。若在第一天之前,两个居民幸福值之和就小于 ,输出 。
样例
样例 1
3 3 5 4
2 9 4
1 2
2 3
1 3
2 2 1
1 2 3
2 3 3
1 1 2
1 1 3
1 2 11
3 2 20
1 3 15
2 3 10
4
3
3
4
样例 2
4 5 3 4
1 2 3 4
1 2
2 3
1 3
3 4
2 4
1 2 4
1 3 4
2 3 2
1 4 21
1 4 20
1 3 9
2 2 2
-1
1
2
3
样例解释
第二个样例解释:
对于第一个询问,两名居民的幸福值之和始终小于 (初始时等于 )。对于第二个询问,在第二天之后,他们的幸福值之和会减少到 。其他询问可同理解释。
计分方式
原题计分表如下图所示:

文字化整理如下:
| 编号 | 附加限制 | 分数 | |||
|---|---|---|---|---|---|
| 1 | 无 | 4 | |||
| 2 | 7 | ||||
| 3 | - | 13 | |||
| 4 | 14 | ||||
| 5 | 27 | ||||
| 6 | 无 | 35 | |||