1962. Climbing the Tree

有一只蜗牛在爬树,树的高度为h

蜗牛每天早上能爬上高度a,但在晚上的时候会休息,在牛顿的作用下会下降高度b.

如果在第n天里,蜗牛能到达树最高处h,那么就说蜗牛在第n天到达树顶。(注意的是如果在第n天的早上能够直接到达h处,也表示蜗牛在n天到达树顶)。

不幸的是,你不知道树的高度h,但h至少是一个正整数。

接下来有q次询问,询问分为两种类型:

1:一只蜗牛(早上能爬a高度,晚上会掉下b高度)说它在第n天就爬上了树顶,如果这是第一次类型1的询问,则采用它,否则需要判断是否和之前的类型1是否矛盾,如果没矛盾则采用它,有的话就不采用。

2:来了一只蜗牛(早上能爬a高度,晚上会掉下b高度),它想知道它可以在第几天爬上树顶,如果你知道它可以在具体的第几天爬上树顶,就回答它天数,否则就不回答它。

输入

第一行为测试用例数量t,表示有t个测试用例。

对于每个测试用例:

第一行输入一个正整数q,1\leq p \leq 2\times 10^5,表示询问个数。

接下来q行,如果是类型1的询问,则这一行包括4个正整数f,a,b,n (1 \leq a,b,n \leq 1\times 10^9,a>b),第1个数f的值为1时,表示其询问类型为1,接下来三个数表示蜗牛早上爬的高度,晚上掉下来的高度,和在第几天到达树顶。

类型2的询问的话,该行包括3个正整数,第一个数表示其询问类型为2,接下来两个数a,b (1 \leq a,b \leq 1\times 10^9,a > b)表示蜗牛早上爬的高度,晚上掉下来的高度。

可以知道的是所有测试用例的询问次数q的总和不超过2 \times 10^5

输出

对于每个测试用例,输出一行q个用空格隔开的数,对应每次询问的答案。

对于类型1的询问,如果采用了的话输出1,否则输出0。

对于类型2的询问,如果可以确定爬上树顶的天数,则输出该天数,否则输出-1。

样例

标准输入 复制文本
5
3
1 3 2 5
2 4 1
2 3 2
3
1 6 5 1
2 3 1
2 6 2
3
1 4 2 2
1 2 1 3
2 10 2
9
1 7 3 6
1 2 1 8
2 5 1
1 10 9 7
1 8 1 2
1 10 5 8
1 10 7 7
2 7 4
1 9 4 2
9
1 2 1 6
1 8 5 6
1 4 2 7
2 9 1
1 5 1 4
1 5 2 7
1 7 1 9
1 9 1 4
2 10 8
标准输出 复制文本
1 2 5
1 -1 1
1 0 1
1 0 -1 0 0 0 1 8 0
1 0 0 1 0 0 0 0 1

提示

原题

推荐去原题处提交

登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 2
通过 2