아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Cowlphabet

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

요약
허용된 인접 글자 쌍이 주어질 때 대문자 U개와 소문자 L개로 이루어진 유효한 단어의 개수를 97654321로 나눈 나머지로 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 조합론, 그래프, 행렬
정답자
아직 제출이 없습니다

문제

모든 소들처럼, 농부 John의 소들도 독특한 '소(Cow)' 언어를 씁니다. 여러 언어가 그렇듯, 이 언어의 각 단어는 대문자와 소문자 알파벳(A–Z, a–z)의 나열입니다. 어떤 단어가 유효하려면, 그 단어 안에서 인접한 모든 순서쌍(앞 글자와 그 뒤에 오는 글자)이 유효한 쌍이어야 합니다.

소들이 자신을 음해할까 늘 걱정하던 농부 John은 최근 소들의 대화를 엿들으려다, 들키기 직전에 단어 하나를 겨우 들었습니다. 소 언어는 너무 빠르고 발음이 낯설어서, 그가 알아낼 수 있었던 것은 그 단어에 들어 있는 대문자의 총 개수 UU (1≤U≤2501 \le U \le 250)와 소문자의 총 개수 LL (1≤L≤2501 \le L \le 250)뿐이었습니다.

농부 John은 소 언어에서 인접할 수 있는 유효한 순서쌍 PP개(1≤P≤2001 \le P \le 200)를 모두 알고 있습니다. 그는 이 제한된 정보와 들어맞는 유효한 단어가 몇 개인지 알고 싶어 합니다. 이 값이 매우 커질 수 있으므로, 9765432197654321로 나눈 나머지를 구하면 됩니다.

입력

  • 첫째 줄: 공백으로 구분된 세 정수 UU, LL, PP.
  • 둘째 줄부터 P+1P+1째 줄까지: 각 줄에 유효한 순서쌍을 이루는 두 글자(각각 대문자 또는 소문자일 수 있음). 앞 글자 바로 뒤에 뒤 글자가 이어질 수 있음을 뜻합니다.

출력

  • 첫째 줄: 농부 John의 정보와 들어맞는 유효한 단어의 개수를 9765432197654321로 나눈 나머지 하나.

참고

  • 단어는 글자들의 순서 있는 나열이며, 같은 글자가 여러 번 나올 수 있습니다.
  • UU와 LL은 단어 전체에서의 대문자·소문자 총 개수이며, 각 글자가 놓이는 위치는 상관없습니다.
  • 글자 나열이 다르면 서로 다른 단어로 셉니다.
  • U≥1U \ge 1, L≥1L \ge 1이므로 모든 단어의 길이는 2 이상이고, 단어에 쓰인 각 글자는 적어도 하나의 인접 쌍에 속합니다.

예제5

  1. 예제 1

    입력
    2 2 7
    AB
    ab
    BA
    ba
    Aa
    Bb
    bB
    
    예상 출력
    7
    
  2. 예제 2

    입력
    1 1 1
    Aa
    
    예상 출력
    1
    
  3. 예제 3

    입력
    1 1 1
    aA
    
    예상 출력
    1
    
  4. 예제 4

    입력
    1 1 1
    AB
    
    예상 출력
    0
    
  5. 예제 5

    입력
    2 2 2
    Aa
    aA
    
    예상 출력
    2