만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

처음과 끝

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

요약
각 단어를 첫 글자에서 마지막 글자로 향하는 간선으로 보고, 앨리스가 먼저 고를 때 필승이 되는 단어의 개수를 구합니다.
난이도

보통10점 중 6점

유형
게임 이론, 그래프
정답자
아직 제출이 없습니다

문제

앨리스와 밥이 단어 게임을 한다. 두 사람은 단어 목록으로 시작하고 번갈아 차례를 진행한다. 앨리스가 먼저 시작하며 목록에서 첫 단어를 고른다. 이후 각 차례의 플레이어는 직전 상대가 고른 단어의 끝 글자로 시작하는 단어를 목록에서 골라야 한다. 같은 단어는 두 번 사용할 수 없다. 단어를 고를 수 없는 플레이어가 진다.

두 사람이 모두 최선을 다한다고 가정할 때, 앨리스가 첫 단어로 고르면 앨리스가 이기게 되는 단어는 목록에 몇 개인가?

입력

첫 줄에 단어의 개수를 나타내는 정수 nn (1≤n≤1 0001 \le n \le 1\,000)이 주어진다. 이어지는 nn개 줄에는 소문자 'a'부터 'z'까지로만 이루어진 단어가 한 줄에 하나씩 주어진다. 각 단어의 길이는 2글자 이상 15글자 이하이다. 모든 단어는 서로 다르다. 모든 단어의 첫 글자와 끝 글자에 등장하는 서로 다른 글자는 최대 3개이다. 앨리스와 밥은 이 목록의 단어만 고를 수 있다.

출력

앨리스가 처음 고른 단어로 앨리스가 이기게 되는 단어의 개수를 정수 하나로 출력한다. 두 사람은 모두 최적으로 플레이한다.

예제2

  1. 예제 1

    입력
    3
    attic
    climb
    alpha
    
    예상 출력
    2
    
  2. 예제 2

    입력
    22
    agora
    alpha
    antic
    aorta
    apnea
    arena
    aroma
    attic
    basic
    blurb
    china
    circa
    civic
    climb
    cobra
    cocoa
    comic
    comma
    conic
    crumb
    cubic
    cynic
    
    예상 출력
    6