CodeTON Round 4 (Div. 1 + Div. 2, Rated, Prizes!)
D
Climbing the Tree
Codeforces
1700
原题
← CE →
翻译中…

The snails are climbing a tree. The tree height is $h$ meters, and snails start at position $0$.

翻译中…

Each snail has two attributes $a$ and $b$ ($a \gt b$). Starting from the $1$-st day, one snail climbs the tree like this: during the daylight hours of the day, he climbs up $a$ meters; during the night, the snail rests, and he slides down $b$ meters. If on the $n$-th day, the snail reaches position $h$ for the first time (that is, the top of the tree), he will finish climbing, and we say that the snail spends $n$ days climbing the tree. Note that on the last day of climbing, the snail doesn't necessarily climb up $a$ meters, in case his distance to the top is smaller than $a$.

翻译中…

Unfortunately, you don't know the exact tree height $h$ at first, but you know that $h$ is a positive integer. There are $q$ events of two kinds.

翻译中…
  • Event of type $1$: a snail with attributes $a$, $b$ comes and claims that he spent $n$ days climbing the tree. If this message contradicts previously adopted information (i. e. there is no tree for which all previously adopted statements and this one are true), ignore it. Otherwise, adopt it.
  • Event of type $2$: a snail with attributes $a$, $b$ comes and asks you how many days he will spend if he climbs the tree. You can only give the answer based on the information you have adopted so far. If you cannot determine the answer precisely, report that.
翻译中…

You need to deal with all the events in order.

翻译中…

Input

翻译中…

Each test contains multiple test cases. The first line contains a single integer $t$ ($1 \le t \le 10^4$) — the number of test cases. Then follows their description.

翻译中…

The first line of each test case contains one integer $q$ ($1\le q \le 2\cdot 10^5$) — the number of events.

翻译中…

For the following $q$ lines, the first integer of each line is either $1$ or $2$, denoting the event type.

翻译中…

If the event type is $1$, then three integers $a$, $b$, and $n$ ($1\le a,b,n \le 10^9$, $a \gt b$) follow.

翻译中…

If the event type is $2$, then two integers $a$ and $b$ ($1\le a,b \le 10^9$, $a \gt b$) follow.

翻译中…

It is guaranteed that the sum of $q$ over all test cases does not exceed $2\cdot 10^5$.

翻译中…

Output

翻译中…

For each test case, output $q$ integers in one line, one for each event, in order. Specifically,

翻译中…
  • for each event of type $1$, if you adopt the message, output $1$; if you ignore it, output $0$;
  • for each event of type $2$, output an integer denoting the number of days that the snail will spend. If you cannot determine it, output $-1$.
翻译中…

Note

翻译中…

In the first test case, we can determine $h=7$ through the first message, so we know the second snail and the third snail need to spend $2$ and $5$ days respectively to reach the top.

翻译中…

Let's show how the second snail climbs:

翻译中…
  • During the daylight hours of the $1$st day: climbs up $4$ meters, now at position $4$.
  • During the night of the $1$st day: slides down $1$ meters, now at position $3$.
  • During the daylight hours of the $2$nd day: climbs up $4$ meters, now at position $7$ (reaches the top).
翻译中…

In the third test case, the second snail's message contradicts the first snail's, because the second snail says he spent $3$ days, and he can climb at most $1+1+2=4$ meters in the first $3$ days. However, the first snail only needs $1$ day to climb $4$ meters.

翻译中…

样例

Input #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
Output #1
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
InputCopy OutputCopy
题目信息
题号
1810D
时间限制
2 s
内存限制
256 MB
标签
二分
数学

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。