#P16667. [Ctu2023]Movers
[Ctu2023]Movers
题目描述
Tomorrow Programming School 的高效计算系以在各实验室中储存大量桌子和显示器而闻名,这些设备为整个学校提供了很大帮助。
每当某个实验室举行会议时,可用的桌子和显示器必须足够供所有与会者使用。必要时,可以从相邻实验室借用桌子或显示器;在极端情况下,可以把所有相邻实验室中的全部桌子和显示器都搬过来。
因此,对某个实验室而言:
- 可用桌子数等于该实验室自身以及所有相邻实验室中的桌子总数;
- 可用显示器数等于该实验室自身以及所有相邻实验室中的显示器总数。
设备不会从更远的实验室搬运,因为这被认为既低效又容易发生事故。每次会议结束后,所有借来的设备都会在下一场会议开始前归还原实验室。
会议的理想状态是可用桌子数与可用显示器数相等。如果二者不相等,维护人员就需要进行额外处理。
新的桌子和显示器会频繁运抵学校,并被加入不同的实验室。
为了安排会议和设备维护,需要支持以下两类操作:
- 向某个实验室增加若干张桌子或若干台显示器;
- 查询某个实验室当前可用的桌子更多、显示器更多,还是二者相等。
输入格式
第一行包含三个整数 :
$$1\le N\le 10^5,\qquad 0\le M\le 10^5,\qquad 0\le Q\le 10^5.$$其中:
- 表示实验室数量;
- 表示相邻实验室对的数量;
- 表示操作数量。
实验室编号为 。
第二行包含 个整数 :
表示实验室 初始拥有的桌子数量。
第三行包含 个整数 :
表示实验室 初始拥有的显示器数量。
接下来 行,每行包含两个不同的整数 :
表示实验室 与实验室 相邻。
所有相邻实验室对互不相同。
接下来 行,每行是一条操作,格式为以下两种之一。
添加操作
add <count> desk <label>
或
add <count> monitor <label>
表示向编号为 <label> 的实验室增加 <count> 张桌子或 <count> 台显示器。
每次添加的数量不超过 。
查询操作
check <label>
表示查询编号为 <label> 的实验室中,可用桌子数与可用显示器数之间的关系。
输出格式
对于每条 check 操作,按照其在输入中的出现顺序输出一行:
- 如果可用桌子更多,输出
desks; - 如果可用显示器更多,输出
monitors; - 如果二者相等,输出
same。
样例
输入
4 5 8
1 1 1 0
2 0 2 0
1 2
2 3
3 4
4 1
1 3
check 2
add 2 desk 1
check 2
add 1 monitor 3
check 1
check 2
check 3
check 4
输出
monitors
desks
same
same
same
monitors