Sõnamäng

시간 제한1초메모리 제한1024 MB

요약
서로 다른 N개의 단어가 주어질 때, 각 단어가 앞 단어의 마지막 문자로 시작하도록 모든 단어를 한 번씩 사용해 나열할 수 있는지 판정하고, 가능하면 그 순서를 출력한다.
난이도

보통10점 중 7점

유형
그래프, DFS, 문자열, 구현
정답자
아직 제출이 없습니다

문제

Lapsed mängivad mängu, kus iga järgmine mängija peab ütlema sõna, mis algab sama tähega, millega eelmine lõpeb.

Antud on sõnastik, millesse sõnad peavad kuuluma. Sõnades eristatakse märke 'A' kuni 'Z', 'a' kuni 'z' ja '0' kuni '9', s.t suur- ja väiketähed loetakse erinevateks. Kõik sõnad sõnastikus on erinevad.

Leida, kas lapsed saavad mängida mängu nii, et iga sõnastikku kuuluvat sõna kasutatakse täpselt üks kord.

입력

Esimesel real on sõnastiku sõnade arv NN (2≤N≤10,0002 \le N \le 10\\,000). Järgmisel NN real on igaühel üks sõna. Ühegi sõna pikkus pole üle 1010 märgi.

출력

Kui kõik sõnad saab reeglite kohaselt järjekorda seada, siis kirjutada väljundi esimesele reale sõna 'JAH' ning selle järele täpselt NN rida: üks võimalik järjekord sõnadest, kus iga järgmine sõna algab sama märgiga, millega eelmine lõppes. Kui selline järjekord ei ole võimalik, siis kirjutada väljundi ainsale reale sõna 'EI'.

예제2

  1. 예제 1

    입력
    7
    Kala
    aabits
    aju2
    234
    SALK
    sada
    anarhia
    
    예상 출력
    JAH
    SALK
    Kala
    anarhia
    aabits
    sada
    aju2
    234
    
  2. 예제 2

    입력
    3
    Abbb
    Baaa
    aaaB
    
    예상 출력
    EI