未知数
#描述#
有这样的 n 个未知数 X<SUB>0</SUB>, X<SUB>1</SUB>, … , X<SUB>n – 1</SUB> ,对于它,我们能进行两种查询,一种是直接询问 X<SUB>i</SUB> 等于多少,另一种是询问 X<SUB>i</SUB> - X<SUB>j</SUB> 等于多少。现在,假设我们现在在交谈,我将跟你说 q 句话,每句话有以下三种形式:<BR>
1、I p v :告诉 X<SUB>p</SUB> 的值是 v ;<BR>
2、I p q v :告诉你 X<SUB>p</SUB> - X<SUB>q</SUB> 等于 v ;<BR>
3、Q o<SUB>1</SUB> p<SUB>1</SUB> o<SUB>2</SUB> p<SUB>2</SUB> … o<SUB>k</SUB> p<SUB>k</SUB> : 请你回答 o<SUB>1</SUB> X<SUB>p<SUB>1</SUB></SUB> o<SUB>2</SUB> X<SUB>p<SUB>2</SUB></SUB> … o<SUB>k</SUB> X<SUB>p<SUB>k</SUB></SUB> 的值是多少,其中 o<SUB>1</SUB> o<SUB>2</SUB> … o<SUB>k</SUB> 是 + 或 - ,且 1 <= k <= 15 。<BR>
其中前两种是信息,后一种是询问。
#格式#
##输入格式##
有多组数据,每组数据第一行为两个正整数 n q (1 <= n <= 20000, 1 <= q <= 40000) ,接下来 q 行信息。输入数据中所有整数的绝对值小于等于 100000 。最后一行 0 0 表示输入数据结束。
##输出格式##
每组数据第一行是 Case #: ,其中 # 表示数据的序号。接下来对于每个询问输出一个结果,若无法解答则输出 I don't know.,若中途读到一条信息与前面的信息冲突,则输出 The first # facts are conflicting. ,其中 # 表示信息的条数。遇到冲突,则该组数据中,之后的话都应不予理会。每组数据结束后输出一个空行。
#样例1#
##样例输入1##
4 7
I 0 1
Q + 0
Q + 1 + 2 + 3
I 3 0 3
Q + 3
I 1 2 -1
Q - 0 + 1 - 2
6 8
I 1 2 7
Q + 2
I 5 4 3
Q + 2 + 5 - 4 - 1
I 2 4 -10
I 1 5 6
I 4 6
Q + 1 + 5
0 0
##样例输出1##
Case 1:
1
I don't know.
4
-2
Case 2:
I don't know.
-4
The first 4 facts are conflicting.
#限制#
2000ms
32768KB
#提示#
#来源#
ycc