#590. 1594. [Usaco2008 Jan]猜数游戏

1594. [Usaco2008 Jan]猜数游戏

#1594. [Usaco2008 Jan]猜数游戏

题目描述

为了提高自己低得可怜的智商,奶牛们设计了一个新的猜数游戏,来锻炼她们的逻辑推理能力。 游戏开始前,一

头指定的奶牛会在牛棚后面摆N(1 <= N<= 1,000,000)堆干草,每堆有若干捆,并且没有哪两堆中的草一样多。所

有草堆排成一条直线,从左到右依次按1..N编号,每堆中草的捆数在1..1,000,000,000之间。 然后,游戏开始。

另一头参与游戏的奶牛会问那头摆干草的奶牛 Q(1 <= Q <= 25,000)个问题,问题的格式如下: 编号为Ql..Qh(1

<= Ql <= Qh <= N)的草堆中,最小的那堆里有多少捆草? 对于每个问题,摆干草的奶牛回答一个数字A,但或许

是不想让提问的奶牛那么容易地得到答案,又或许是她自己可能记错每堆中干草的捆数,总之,她的回答不保证是

正确的。 请你帮助提问的奶牛判断一下,摆干草的奶牛的回答是否有自相矛盾之处。

输入格式

  • 第1行: 2个用空格隔开的整数:N 和 Q

  • 第2..Q+1行: 每行为3个用空格隔开的整数Ql、Qh、A,描述了一个问题以及它 对应的回答

输出格式

  • 第1行: 如果摆干草的奶牛有可能完全正确地回答了这些问题

(也就是说,能 找到一种使得所有回答都合理的摆放干草的方法),输出0,

否则输出 1个1..Q中的数,表示这个问题的答案与它之前的那些回答有冲突之处

注意:如果有冲突出现输出一个数m,使得前M-1个命题不冲突。

样例

样例输入

20 4  

1 10 7  

5 19 7  

3 12 8  

11 15 12  

输入说明:  

编号为1..10的草堆中,最小的那堆里有7捆草,编号为5..19的草堆中同样如此;编号为3..12的草堆中最小的堆里  

是8捆草,11..15堆中的最小的堆里是12捆。

样例输出

3  

输出说明:  

对于第3个问题“3 12”的回答“8”与前面两个回答冲突。因为每堆中草的捆数唯一,从前两个回答中我们能推断  

出,编号为5..10的干草堆中最小的那堆里有7捆干草。很显然,第3个问题的回答与这个推断冲突。

数据范围与提示