P12358 [eJOI 2024] 奶酪交易 / Cheese
题目描述
最近,一群农夫开始在 EJOI 大陆上售卖他们的奶酪。**每个农夫的奶酪都有固定的价格。**
EJOI 大陆的零钱面额均为 $2$ 的幂,即 $1,2,4,8,\dots$ 等等。
一天,农夫们将自己的奶酪带到一个集市上售卖。在一次交易中,农夫们需要给出自己的零钱来购买对方的奶酪。例如 Sanda 的奶酪比 Victor 的便宜 $2$ 块钱,则一种可能的交易方式是二人交换奶酪,Sanda 给 Victor 一张 $8$ 块钱,Victor 给 Sanda 一张 $2$ 块和一张 $4$ 块。这样双方得到的就平衡了。
市场的负责人注意到了这些有趣的交易,于是他将其全部记录在本子上,具体而言,他是这么记录的:
对于每次交易,首先记录两位农民,分别是 $i$ 和 $j$,接下来两个数 $A$ 和 $B$,$A$ 表示 $i$ 最开始付的零钱数,而 $B$ 则表示:
- 若 $B=-1$,那么没有找零,即 $j$ 不用给 $i$ 任何钱。
- 否则,$B$ 表示 $j$ 给 $i$ 找零的钱中,面值最小的一张的面值。
由于负责人有些粗心,有些可能记录错了。作为负责人的朋友,你需要帮助他找到哪些记录是与前面记录矛盾的。
**译者注:若你无法理解题面,请参考样例解释。**
输入格式
第一行,两个正整数 $N$ 和 $M$,分别表示农夫数量和交易数量。
接下来 $M$ 行,每行四个整数 $i,j,A,B$,表示记录一次交易。
输出格式
对于每次交易,如果这次交易记录与前面不矛盾,输出 `1`;否则输出 `0`。
说明/提示
**【样例解释】**
共有 $10$ 次交易:
- 第一次:`1 2 5 -1`,$1$ 号农夫给了 $2$ 号农夫 $5$ 块,由于 $B=-1$,所以我们可以知道 $1$ 号奶酪比 $2$ 号奶酪便宜 $5$ 块,这显然没有矛盾。
- 第二次:`1 2 5 16`,$1$ 号农夫给了 $2$ 号农夫 $5$ 块,两人在找零过程中使用的最小面值是 $16$。有一种可能的情况是,找零时,$1$ 号给 $2$ 号了 $16$ 块,$2$ 号给 $1$ 号了 $16$ 块(是的,这是可能的!),这样就不与第一条记录矛盾。
- 第三次:`2 3 0 4`,$2$ 号农夫给了 $3$ 号 $0$ 块,他们在找零时使用最小面值是 $4$。因为目前还没有关于 $2$ 和 $3$ 的交易,所以这次显然不矛盾。
- 第四次:`2 1 1 2`,$2$ 号农夫给了 $1$ 号农夫 $1$ 块,他们找零最小面值为 $2$ 块。此时,可能是 $1$ 号给了 $2$ 号三张 $2$ 块,这样他们两个奶酪价格差仍然是 $5$ 块,也不矛盾。
- 第五次:`1 3 0 8`,这次不管如何都不能满足条件,因此矛盾。
剩下 $5$ 次交易,请选手自行模拟。
----
**【数据范围】**
**本题采用 $\text{Subtask}$ 捆绑测试。**
|$\text{Subtask}$|分值|特殊性质|
|:-:|:-:|:-:|
|$1$|$7$|$2\le N,M\le10$|
|$2$|$8$|$B=2$|
|$3$|$11$|$B=-1$|
|$4$|$19$|$3\le N\le10$|
|$5$|$38$|$B=1,2,4,8,16,32$|
|$6$|$17$|无|
对于 $100\%$ 的数据,$2\le N,M\le5\times10^5,1\le i,j \le N,i\not =j,0\le A\le2^{15},B=-1$ 或 $B=1,2,4,8,\dots,2^{14},2^{15}$。