#P4646. Restructuring Company

Restructuring Company

题目描述

nn 个人在公司里面工作。员工从 11nn 编号。每一个人属于一个部门。刚开始每一个人在自己的部门负责自己的项目,这样的话公司里面就有 nn 个部门。

然而,公司内部出现了危机,需要合并一些部门,以提高工作效率。team(person)team(person) 表示 personperson 这个人所在的部门。有以下两种合并操作:

  1. 合并 team(x)team(x)team(y)team(y)xxy (1x,yn)y\ (1≤x,y≤n) 是员工编号。如果 team(x)team(x)team(y)team(y) 是同一个部门,那么就不操作。

  2. 合并 team(x),team(x+1),...,team(y)team(x),team(x+1),...,team(y)xxy (1xyn)y\ (1≤x≤y≤n) 是员工编号。

有一些查询操作,查询员工 xxy (1x,yn)y\ (1≤x,y≤n) 是否属于同一部门。

输入格式

第一行两个整数 n,qn,q1n2000001\le n \le 2000001q5000001\le q \le500000

接下来 qq 行,每行包含一次操作,格式为 type x y\tt type\ x\ y,如果 type=1type = 1 表示第一种合并操作,如果 type=2type = 2 表示第二种合并操作,如果 type=3type = 3 表示查询操作。

输出格式

对于每一个查询操作,在一行中输出 YESNO 表示回答。

8 6
3 2 5
1 2 5
3 2 5
2 4 7
2 1 2
3 1 7
NO
YES
YES