#P2725. Finding Treasure
Finding Treasure
题目描述
从前有一个热爱冒险的年轻人。他在祖父的遗物中发现了一张旧羊皮纸,上面描述了一个秘密埋藏的宝藏。旧羊皮纸指示他前往一个特定的荒岛。岛的北岸有一大片草坪,草坪上有一棵橡树、一棵松树以及一个绞刑架。指示内容如下:从绞刑架走到橡树,并记住走过的距离,然后右转,走与之前同样的距离,在此处做记号。接着返回绞刑架,朝松树走去,并记住走过的距离,然后左转,走同样的距离,再在此处做记号。最后,在这两个记号之间线段的中点处挖掘,宝藏就在那里(见图)。
这位年轻人找到了该岛,并且也找到了橡树和松树,但由于时间的侵蚀,绞刑架已被毁坏。年轻人感到失望,于是离开了。多么遗憾!如果这位年轻人拥有一些几何知识,他就会发现宝藏的位置与绞刑架的位置无关。但我相信你不会重蹈覆辙。给定如何寻找宝藏的一般描述,你的任务是确定宝藏的位置,前提是这个位置可以被唯一确定。
首先,你将得到一些原始记号点的信息。这些点中有一些位置是已知的,而另一些则未知。接着你将得到一些制作新记号的指令。指令共分为三种类型:
- 给定两个记号和,新的记号位于与连线的中点。
- 给定两个记号和,从记号走向记号,到达后左转,走与到的距离相同,然后在该处做记号。
- 给定两个记号和,从记号走向记号,到达后右转,走与到的距离相同,然后在该处做记号。
最后,你将被要求确定某个记号的位置。
输入格式
输入包含若干测试用例。每个测试用例包括三个部分:
-
原始记号信息
这一部分包含若干行,每一行有以下两种格式之一:- 格式一:
表示记号的位置未知。 - 格式二:
表示记号的位置已知,为点,其中和均为区间内的整数。
在这一部分中,每个记号最多只出现一次。
- 格式一:
-
指令信息
每条指令均采用以下格式:
其中,(取值为、或)表示指令的类型;和是已存在的记号,且它们不相同;是新记号的符号,且是首次出现。 -
查询信息
单独一行,仅包含一个记号符号,该记号为需要求其位置的标记。该记号之前肯定已经出现过。
一行包含“END”的记录表示输入结束。
输出格式
对于每个测试用例,输出一行,包含两个小数和,表示求得的记号位置为。这两个数字需要保留小数点后两位。如果该位置无法确定,则输出“UNCERTAIN!”。
输入样例1
B 0 0
A
C 100 0
3 A B D
2 A C E
1 D E F
F
END
输出样例1
50.00 50.00
来源
Beijing 2005