题目描述
有N名士兵(1<=N<=26),编号依次为A,B,C,……进行队列训练时,指挥官要把一些士兵从高到矮依次排成一行,但现在指挥官不能直接获得每个士兵的身高信息,只能获得“P1比P2高”这样的比较结果(P1,P2∈{
A,B,…Z},记为P1>P2),如“A>B”表示A比B高。
编一程序,根据所得到的比较结果求出符合条件的排队方案。
注:比较结果中没有涉及到的士兵不参加排队。
例如,设有3个士兵,A、B、C,给出关系(A,B),(B,C)。其中(A,B)表示士兵A高于B,当上面的关系给出之后,可以将他们排成一队:ABC。
输入输出格式
输入格式:
输入文件中每个比较结果在文件中占一行。
输出格式:
若输入数据无解或不能唯一确定,则输出“NO ANSWER!”,否则从高到矮依次输出每一个士兵的编号,中间无分隔符,并把结果写入文本文件中。
输入输出样例
输入样例#1:
A>B
B>F
F>D
这道题目看上去十分的困难,感觉毫无头绪,但是有经验的OI选手一眼就可以看出,这是TOP排序啊!(若不知道TOP排序,请见『这里!』)。但是在简单的Top排序上又要加入一些判断,详情见代码:
#include<stdio.h>
#include<stdlib.h>
#include<string