#C00004A. 【OI】大团长立flag

【OI】大团长立flag

题目背景

北风骑士 · 西风骑士团团长 · 写信的 · 酒鬼 · 法尔伽大人可精了,得知此次出征去讨伐深渊可能有生命危险,于是立下反向 flagflag,成功避免破灭结局出现。

声明

本题有可能会使用到线段树。 你说得对,但是线段树是一种维护区间信息的树型数据结构,有着极其广阔的应用场景。它可以将大量需要 O(N)O(N) 维护的内容变为树上的 O(logN)O(\log N) 维护

题目描述

法尔伽大团长会给出如下两种操作,共 TT 个:

1.1. 立下一个 flagflag 区间 {tl,  tr}\{tl,\;tr\},令上一次的查询的左端点为 prelprel,右端点为 prerprer,答案为 ansans, 且是第 ii 次查询(假设上一次查询是第3次遇到的查询,且是在第5次操作时碰到的,则i为3)。则 tl=prel+ans,  tr=prer+ans+(i  %  5)tl = prel + ans,\;tr = prer + ans + (i \; \% \; 5)。特别的,第一次操作时,输入 tl,  trtl,\;tr,数据保证第 11 次操作是 11,第 22 次操作是 22

2.2. 查询是否有至少一对 flagflag 区间互为 反向flagflag。对于一对 flagflag 区间 [l1,r1],[l2,r2][l_1,r_1],[l_2,r_2](我们认为 l1l2l_1 \le l_2),若满足 r1l2r_1 \ge l_2,则称两个 flagflag 区间互为 反向flagflag。如果有,输出 11, 否则输出 00。 我们规定在所有的操作前不存在任何 flagflag 区间。

输入格式

11 行,一个整数 TT。 接下来 TT 行,每行一个整数 opop。 当 op==1op == 1,表示执行操作 11。特别的,第一次操作时,给出两个整数 firstl,  firstrfirstl,\;firstr。 当 op==2op == 2,表示执行操作 22

输出格式

共有 QQ 个查询,输出 QQ 行,其中第 ii 行是第 ii 个查询的答案ansans

样例输入

4
1 1 3
2
1
2

样例输出

0
1

样例解释

对于第 11 个查询,只存在一个 flagflag 区间,于是也不存在反向flagflag

对于第 22 个查询,有 flagflag 区间 {1,3}\{1, 3\}{1,4}\{1, 4\}131 \le 3 故存在反向flagflag

数据规模与约定

对于 100%100\% 的数据,1firstl<firstr105,1T1051 \le firstl < firstr \le 10 ^ 5, 1\le T \le 10^5