모두 정렬하기
시간 제한1초메모리 제한128 MB
알파벳 대문자 n개의 크기 관계가 하나씩 주어질 때, 정렬 순서가 유일하게 정해지거나 모순이 생기는 시점을 찾아 출력한다.
문제
서로 다른 값들의 오름차순 정렬 수열이란, 어떤 형태의 '작다' 연산자를 사용해 원소들을 가장 작은 것부터 가장 큰 것까지 나열한 것을 말합니다. 예를 들어 정렬된 수열 A, B, C, D는 A < B, B < C, C < D를 의미합니다. 이 문제에서는 A < B 형태의 관계들이 주어지며, 이 관계들만으로 정렬 순서가 유일하게 결정되는지 판별해야 합니다.
입력
입력은 여러 개의 인스턴스로 이루어집니다. 각 인스턴스는 두 양의 정수 n과 m이 담긴 줄로 시작합니다. n은 정렬할 대상의 개수이며 입니다. 정렬 대상은 대문자 알파벳의 앞에서부터 n개의 문자입니다. m은 이 인스턴스에서 주어지는 A < B 형태의 관계 개수입니다. 이어서 m개의 줄이 주어지며, 각 줄은 세 문자, 즉 대문자 한 개, 문자 <, 그리고 또 다른 대문자 한 개로 이루어진 관계 하나를 담습니다. 등장하는 문자는 앞 n개의 알파벳 범위를 벗어나지 않습니다. n = m = 0인 줄은 입력의 끝을 의미합니다.
출력
각 인스턴스마다 한 줄을 출력합니다. 이 줄은 다음 세 가지 중 하나여야 합니다.
Sorted sequence determined after xxx relations: yyy...y.
Sorted sequence cannot be determined.
Inconsistency found after xxx relations.
여기서 xxx는 정렬 순서가 유일하게 결정되거나 모순이 발견되는 시점(둘 중 먼저 일어나는 쪽)까지 처리한 관계의 개수이고, yyy...y는 오름차순으로 정렬된 수열입니다. 관계는 한 번에 하나씩 순서대로 처리하며, 순서가 유일하게 결정되거나 모순이 발견되는 즉시 그 시점까지 처리한 관계 개수를 사용해 결과를 출력합니다. 모든 관계를 처리한 뒤에도 순서가 유일하게 결정되지 않고 모순도 없으면 순서를 결정할 수 없다고 출력합니다.