Ordenando o curso X22981


Statement
 

pdf   zip

html

José, o primo mais velho de João e Maria, entrou no curso de Ciência da Computação e, muito animado, foi na Coordenação se informar mais sobre as disciplinas. Lá, ele recebeu uma lista das disciplinas que deve cursar e um conjunto de definições de pré-requisitos. Como José é um aluno bastante aplicado, ele quer fazer as disciplinas na ordem de prioridade em que foram apresentadas na lista.

Diante disto, ajude José a definir uma ordem de disciplinas, respeitando as definições de pré-requisitos.

Input

A primeira linha de cada caso de teste traz dois números m e n que representam a lista de disciplinas e a quantidade de pré-requisitos. A seguir seguem m linhas, cada uma com o nome de uma disciplina (com no máximo 100 caracteres). As próximas n linhas representam uma condição onde "disciplinaa disciplinab" significa que a disciplinaa deve ser feita antes da disciplinab.

Output

Para cada caso de teste, imprima a sequência única de disciplinas que satisfaça os critérios estabelecidos.

Obs.: No segundo caso de teste, a sequência "calculo4 calculo1 calculo2 calculo3" obedece aos critérios dos pré-requisitos, porém não satisfaz a condição de prioridade na ordem da lista.

Public test cases
  • Input

    5 4
    algoritmos_1
    linguagem_c
    paradigmas_de_programacao
    estruturas_de_dados
    algoritmos_2
    algoritmos_1 linguagem_c
    linguagem_c paradigmas_de_programacao
    algoritmos_1 paradigmas_de_programacao
    algoritmos_1 algoritmos_2
    0 0
    

    Output

    algoritmos_1
    linguagem_c
    paradigmas_de_programacao
    estruturas_de_dados
    algoritmos_2
    
  • Input

    4 3
    calculo1
    calculo2
    calculo3
    calculo4
    calculo1 calculo2
    calculo2 calculo3
    calculo1 calculo3
    0 0
    

    Output

    calculo1
    calculo2
    calculo3
    calculo4
    
  • Information
    Author
    Language
    English
    Official solutions
    C++
    User solutions