#BZOJ1018. [SHOI2008] 堵塞的交通

[SHOI2008] 堵塞的交通

题目描述

有一天,由于某种穿越现象作用,你来到了传说中的小人国。小人国的布局非常奇特,整个国家的交通系统可以被看成是一个22CC列的矩形网格,网格上的每个点代表一个城市,相邻的城市之间有一条道路,所以总共有2C2C个城市和3C23C-2条道路。

小人国的交通状况非常槽糕。有的时候由于交通堵塞,两座城市之间的道路会变得不连通,直到拥堵解决,道路才会恢复畅通。初来咋到的你决心毛遂自荐到交通部某份差事,部长听说你来自一个科技高度发达的世界,喜出望外地要求你编写一个查询应答系统,以挽救已经病入膏肓的小人国交通系统。 小人国的交通部将提供一些交通信息给你,你的任务是根据当前的交通情况回答查询的问题。交通信息可以分为以下几种格式:

  • Close r1 c1 r2 c2:相邻的两座城市(r1,c1)(r_1, c_1)(r2,c2)(r_2, c_2)之间的道路被堵塞了;
  • Open r1 c1 r2 c2:相邻的两座城市(r1,c1)(r_1, c_1)(r2,c2)(r_2, c_2)之间的道路被疏通了;
  • Ask r1 c1 r2 c2:询问城市(r1,c1)(r_1, c_1)(r2,c2)(r_2, c_2)是否连通。如果存在一条路径使得这两条城市连通,则返回Y,否则返回N

注:rir_i表示行数,cic_i表示列数,1ri2,1ciC1 \leq r_i \leq 2, 1 \leq c_i \leq C

输入格式

第一行只有一个整数CC,表示网格的列数。

接下来若干行,每行为一条交通信息,以单独的一行Exit作为结束。我们假设在一开始所有的道路都是堵塞的。我们保证CC小于等于100000100000,信息条数小于等于100000100000

输出格式

对于每个查询,输出一个YN

样例数据

2
Open 1 1 1 2
Open 1 2 2 2
Ask 1 1 2 2
Ask 2 1 2 2
Exit
Y
N

数据范围

对于全部数据,1C1000001 \leq C \leq 10000011 \leq信息条数100000\leq 100000