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

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

말을 배우는 조

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

요약
길이 n 이하의 단어 구를 모두 기억하고 새 문장에서 모르는 단어와 처음 나온 구를 포함한 문장을 순서대로 묻습니다.
난이도

보통10점 중 5점

유형
해시맵, 슬라이딩 윈도우, 시뮬레이션
정답자
아직 제출이 없습니다

문제

조는 네 살이고 모국어를 배우고 있다. 처음에는 만들 수 있는 문장을 모두 외우려 했지만, 서로 다른 문장의 수에 끝이 없다는 것을 곧 알았다. 그래서 조는 길이가 nn 이하인 구절과 그 뜻만 외우기로 했다. 길이 kk인 구절은 한 문장에서 연속해 나오는 단어 kk개를 말한다.

조는 어떤 문장에 들어 있는 길이 nn 이하의 구절을 모두 이미 외워 두었을 때 그 문장을 완전히 이해한다.

조는 매일 오후 문장을 하나씩 읽는다. 지난 며칠 동안 배운 것은 모두 기억한다. 문장을 하나 읽으면 모르는 단어의 뜻을 물어보고 그 단어를 배운다. 그래도 문장을 완전히 이해하지 못하면 문장 전체의 뜻을 물어본다. 그 뒤 그 문장에 들어 있는 길이 nn 이하의 구절을 모두 외우고 다음 문장으로 넘어간다.

예를 들어 n=2n = 2이고 조가 "I live in a house"와 "This is a green house"를 이미 안다고 하자. 이때 "I live in a green house"는 완전히 이해한다. 길이 1과 길이 2인 구절을 이미 다 알기 때문이다. n=3n = 3이라면 "in a green"이 앞의 두 문장에서 연속해 나오지 않으므로 문장 전체의 뜻을 물어본다.

조는 자기 이름 Joe를 언제나 알고 있다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 케이스의 첫 줄에는 조가 외울 수 있는 구절의 최대 길이 nn (2≤n≤52 \le n \le 5)이 주어진다.

그다음 줄부터는 조가 지난 며칠 동안 외워 둔 문장이 나온다. 이 부분은 * 한 글자만 있는 줄로 끝난다. * 다음에는 조가 오늘 읽을 문장이 나오고, 이 부분은 # 한 글자만 있는 줄로 끝난다.

두 부분은 각각 서로 다른 단어를 최대 20000개 포함한다. 문장의 끝은 . , : ; ? ! 중 한 글자로 표시하며, 이 글자는 항상 공백으로 떨어진 하나의 토큰으로 주어진다. 한 부분이 끝날 때 끝 표시 없이 남은 단어가 있으면 그 단어도 문장 하나로 본다. 끝 표시가 연달아 나와도 빈 문장은 생기지 않으며, 문장이 하나도 없는 부분도 있을 수 있다.

단어의 길이는 최대 20이고, 한 문장의 단어는 최대 100개, 한 부분의 문장은 최대 1000개다. 같은 문장이 여러 번 나올 수도 있다. 한 문장이 여러 줄에 걸쳐 나올 수도 있고, 한 줄에 문장 여러 개가 올 수도 있다.

단어는 로마자 알파벳으로만 이루어지고, 문장 끝 표시를 빼면 숫자나 다른 기호는 나오지 않는다. 대소문자만 다른 단어는 같은 단어로 본다. 그래서 Joe, JOE, joE는 모두 같은 단어다.

입력은 파일이 끝나는 곳에서 끝난다.

출력

각 테스트 케이스마다 먼저 Learning case C 한 줄을 출력한다. C는 1부터 시작하는 케이스 번호다. 이웃한 두 케이스의 출력 사이에는 빈 줄을 하나 넣는다.

오늘 읽는 문장을 순서대로 처리한다. 조가 모르는 단어 W는 그 문장에서 처음 나온 순서대로 What does the word "W" mean? 을 한 줄씩 출력하고, 한 문장에서 같은 단어를 두 번 물어보지는 않는다. 단어를 다 배운 뒤에도 문장 S를 완전히 이해하지 못하면 What does the sentence "S" mean? 을 출력한다.

W와 S는 입력에 나온 대소문자를 그대로 쓰고, S의 단어는 공백 하나로 구분한다. 완전히 이해한 문장에는 아무것도 출력하지 않는다.

예제1

  1. 예제 1

    입력
    2
    hello sam . say hello to everybody . good bye .
    *
    say hi to everybody .
    hi to everybody .
    hello joe .
    swerc
    #
    4
    Joe is my name . I have a dog . My dog is 
    a 
    cinnamon coloured golden retriever
    . The name of my father is Ben and the name
    of my mother is Linda .
    *
    Hello   Joe , how   are   you ?  Are  you   my    friend ?
    Last day you told me : the name of my mother is Linda .
    You also told me : the name of my father is Ben .
      How  are   you   my   friend ?
    #
    
    예상 출력
    Learning case 1
    What does the word "hi" mean?
    What does the sentence "say hi to everybody" mean?
    What does the sentence "hello joe" mean?
    What does the word "swerc" mean?
    
    Learning case 2
    What does the word "Hello" mean?
    What does the sentence "Hello Joe" mean?
    What does the word "how" mean?
    What does the word "are" mean?
    What does the word "you" mean?
    What does the sentence "how are you" mean?
    What does the word "friend" mean?
    What does the sentence "Are you my friend" mean?
    What does the word "Last" mean?
    What does the word "day" mean?
    What does the word "told" mean?
    What does the word "me" mean?
    What does the sentence "Last day you told me" mean?
    What does the word "also" mean?
    What does the sentence "You also told me" mean?
    What does the sentence "How are you my friend" mean?