Livestock Lineup
시간 제한1초메모리 제한512 MB
소 8마리와 '옆에서 짜야 한다'는 제약이 최대 7개 주어질 때, 모든 제약을 만족하는 순열 중 사전순으로 가장 앞선 것을 출력한다.
문제
매일 Farmer John은 Bessie, Buttercup, Belinda, Beatrice, Bella, Blue, Betsy, Sue라는 이름의 젖소 8마리의 젖을 짠다.
소들은 꽤 까다로워서, Farmer John이 개의 제약 조건()을 만족하는 순서로 젖을 짜기를 요구한다. 각 제약 조건은 "는 옆에서 젖을 짜야 한다" 형태이며, 이는 소 가 젖 짜는 순서에서 소 바로 뒤에 오거나 바로 앞에 와야 한다는 뜻이다.
Farmer John이 이 제약 조건을 모두 만족하는 소들의 순서를 정할 수 있도록 도와주자. 순서가 항상 존재함은 보장된다. 가능한 순서가 여러 개라면, 사전순으로 가장 앞서는 순서를 출력한다. 즉, 첫 번째 소는 유효한 순서에서 첫 번째로 올 수 있는 모든 소 중 이름이 사전순으로 가장 앞서는 소여야 한다. 이렇게 사전순으로 가장 앞서는 첫 번째 소로 시작하는 모든 순서 중에서 두 번째 소는 가능한 유효한 순서에서 사전순으로 가장 앞서는 소이고, 이런 식으로 계속한다.
입력
입력의 첫 줄에는 이 주어진다. 다음 개의 줄에는 "는 옆에서 젖을 짜야 한다" 형태의 제약 조건 문장이 주어지며, 와 는 Farmer John의 소 중 하나의 이름이다(가능한 여덟 개의 이름은 위에 나열되어 있다).
출력
모든 제약 조건을 만족하는 소들의 순서를 8줄에 걸쳐 한 줄에 한 마리씩 출력한다. 가능한 순서가 여러 개라면 사전순으로 가장 앞서는 순서를 출력한다.