#SummerP0014. 宗门之争
宗门之争
Description
大陆上有 个宗门,编号从 到 。编号越大的宗门底蕴越强,因此第 个宗门的底蕴值为 。
宗门之间可以缔结盟约。若宗门 与宗门 缔结盟约,则双方互为盟友。
如果某个宗门满足以下两个条件,则称它会失去独立地位:
- 该宗门尚有至少一个盟约对象;
- 该宗门的所有盟约对象底蕴都比它更强。
这样的宗门会在宗门大会后成为强宗附庸,并退出原本的盟约体系。
你需要处理以下三种操作:
- 在宗门 和宗门 之间缔结一条盟约。
- 解除宗门 和宗门 之间的一条盟约。
- 输出当前盟约体系经过一次独立清算后,仍保持独立地位的宗门数量。
宗门大会的清算过程如下:
每一轮清算开始时,对于每个仍保持独立地位的宗门,如果它当前至少还有一个盟约对象,且它当前所有盟约对象的底蕴都比它更强,那么它会在本轮失去独立地位。
一轮中,所有满足条件的宗门会同时失去独立地位,并退出盟约体系;与它们相关的所有盟约也会在本次清算模拟中被解除。之后,可能又会有新的宗门满足失去独立地位的条件。清算会不断重复,直到没有新的宗门失去独立地位为止。可以证明,该过程一定会在有限轮后结束。
注意:第 类操作只是在当前盟约体系上进行一次临时模拟。清算过程中宗门退出、盟约解除,都不会改变真实的盟约体系。之后的操作仍基于清算前的当前盟约体系继续进行。
Format
Input
第一行包含两个整数 和 (,),分别表示宗门的数量和初始盟约的数量。
接下来的 行,每行包含两个整数 和 (,),表示宗门 与宗门 之间存在一条盟约。不会有重复的盟约。
接下来一行包含一个整数 (),表示操作的数量。
接下来的 行,每行表示一个操作,格式如下:
- (,):在宗门 和宗门 之间缔结一条盟约。保证此时二者之间不存在盟约。
- (,):解除宗门 和宗门 之间的一条盟约。保证此时二者之间存在盟约。
- :输出当前盟约体系经过宗门大会清算后,仍保持独立地位的宗门数量。
保证至少有一次第 类操作。
Output
对于每个第 类操作,输出一个整数,表示过程结束后仍然保持独立地位的宗门数量,每个答案占一行。
Samples
4 3
2 1
1 3
3 4
4
3
1 2 3
2 3 1
3
2
1
4 3
2 3
3 4
4 1
1
3
1
Note
样例 中,第一次询问时,盟约为 。
第一轮中,宗门 的所有盟约对象 和 都比它强,因此宗门 失去独立地位。 解除与宗门 相关的盟约后,宗门 只剩下盟约对象 ,且 比 强,因此第二轮宗门 失去独立地位。 最终剩下宗门 和 ,答案为 。
之后执行加入 、删除 后,当前真实盟约体系变为 。 再次清算后,只有宗门 保持独立地位,答案为 。
相关
在下列比赛中: