#P1006. Rooks Defenders
Rooks Defenders
鲁克后卫
题目描述
您有一个大小为 的正方形棋盘。行的编号从上到下为 至 ,列的编号从左到右为 至 。因此,每个单元格都用一对整数 ( ) 表示,其中 是行号, 是列号。
您必须执行三种类型的 查询:
- 在单元格 中放入新的车。
- 从单元格 中移除新车。保证之前已经在该单元格中放入了新的车。
- 检查棋盘的子矩形 的每个单元是否至少被一只车攻击。
子矩形是单元 的集合,其中每个单元都满足两个条件: 和 。
回顾一下,如果是 或 ,那么放置在 单元中的车就会攻击 单元。具体地说,包含车的单元格会受到这辆车的攻击。
输入格式
输入
第一行包含两个整数 和 ( , )--分别是棋盘大小和查询次数。
下面 行中的每一行都包含一个查询的描述。说明以整数 ( ) 开头,表示查询的类型:
- 如果是 ,接下来是两个整数 和 ( )--应放入新车的单元格的坐标。可以保证的是,在给定的查询时刻, 单元格中没有新的车。
- 如果是 ,那么 和 这两个整数将跟随( )--要移除新车的单元格的坐标。我们保证在给定的查询时刻, 单元格中有一车。
- 如果是 , 和 之后的四个整数( , )- 子矩形,用于检查其中的每个单元格是否至少被一只车攻击。
可以保证在 个询问中至少有一个属于第三种类型的询问。
输出格式
在单独一行中打印第三种类型的每个查询的答案。如果子矩形的每个单元格都至少被一只车攻击,则打印 "是"(不带引号)。
否则打印 "否"(不带引号)。
8 10
1 2 4
3 6 2 7 2
1 3 2
3 6 2 7 2
1 4 3
3 2 6 4 8
2 4 3
3 2 6 4 8
1 4 8
3 2 6 4 8
No
Yes
Yes
No
Yes
提示
注
举例说明。经过前两次查询后,棋盘将如下图所示(字母 表示车所在的单元格,第三次查询的子矩形用绿色标出):
进行第三和第四次查询后的棋盘:
执行第五次和第六次查询后的棋盘:
执行第七次和第八次查询后的棋盘:
执行最后两次查询后的棋盘:
相关
在下列比赛中: