有一只蜗牛在爬树,树的高度为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 |
提示
推荐去原题处提交