필 인 더 블랭크스 (빈칸 채우기)

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

요약
최대 네 개의 빈칸이 있는 문장에 0부터 100까지의 수를 영어 단어로 채워 넣었을 때, 채운 단어까지 포함해 글자·모음·자음·특정 문자 개수를 세는 조건이 모두 참이 되는 해의 수를 구한다.
난이도

보통10점 중 6점

유형
완전 탐색, 문자열, 구현, 수학
정답자
아직 제출이 없습니다

문제

필(Phil)은 문장의 빈칸을 영어 숫자 단어로 채워, 그 문장이 참인 진술이 되도록 만드는 퍼즐들을 풉니다. 프로그래머인 당신은 가능한 해를 모두 찾는 프로그램을 작성하려고 합니다. 퍼즐의 예는 다음과 같습니다.

There are ___ Os and ___ Ts in this sentence.

한 가지 해는 첫 번째 빈칸에 "two", 두 번째 빈칸에 "five"를 넣는 것입니다. 첫 번째 빈칸에 "one"을 넣을 수는 없는데, 단어 "one" 자체에 "O"가 하나 들어 있기 때문입니다. 이처럼 빈칸에 써 넣은 단어도 퍼즐(문장)의 일부가 되어 글자 수에 포함됩니다. 문법은 고려하지 않습니다.

입력

첫 번째 줄에는 데이터 집합의 개수를 나타내는 정수 DD (1≤D≤1001 \le D \le 100)가 주어집니다. 이어지는 DD개의 줄에는 풀어야 할 퍼즐이 한 줄씩 주어집니다.

각 퍼즐은 길이가 1자 이상 100자 이하이며, 다음 네 가지 형태의 참 진술을 1개 이상 4개 이하로 포함합니다.

  • ___ Cs — 빈칸은 퍼즐 안에 등장하는 글자 CC의 개수입니다(대문자와 소문자를 모두 셉니다).
  • ___ letters — 빈칸은 퍼즐 안의 글자(letter) 개수입니다.
  • ___ vowels — 빈칸은 퍼즐 안의 모음 개수입니다. 이 문제에서 모음은 A, E, I, O, U만을 뜻합니다.
  • ___ consonants — 빈칸은 퍼즐 안의 자음 개수입니다.

각 빈칸은 밑줄 문자(_) 세 개가 연속된 ___이며, 단어 letters, vowels, consonants는 항상 소문자입니다. 퍼즐에 나타나는 밑줄 문자는 모두 빈칸의 일부입니다.

출력

각 데이터 집합에 대해, 가능한 올바른 해의 개수를 출력합니다. 퍼즐에 사용되는 모든 숫자 단어는 "zero"부터 "one hundred"까지입니다.

예제3

  1. 예제 1

    입력
    5
    There are ___ Os and ___ Ts in this sentence.
    There are ___ Ts and ___ Es in this sentence.
    Hey, ___ letters here
    And ___ vowels here
    with ___ consonants here
    
    예상 출력
    1
    0
    2
    2
    2
    
  2. 예제 2

    입력
    1
    There are ___ Os and ___ Ts in this sentence.
    
    예상 출력
    1
    
  3. 예제 3

    입력
    1
    Hey, ___ letters here
    
    예상 출력
    2