트렌딩 토픽

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

웹에 있는 텍스트를 분석하는 회사의 채용 과정에 들어갔다고 하자. 시험 과제 하나는 인기 주제 목록을 항상 최신 상태로 유지하는 프로그램을 작성하는 것이다. 채용 여부는 프로그램이 얼마나 효율적인지에 달려 있다.

회사는 가장 활발한 블로그에서 모은 텍스트를 하루 단위로 묶어서 준다. 질의가 들어오면 방금 끝난 날까지 포함해 최근 7일 동안 가장 많이 나온 단어 NN개를 출력해야 한다.

입력

입력 파일 하나에 테스트 케이스 하나가 들어 있다. 하루치 텍스트는 <text> 줄과 </text> 줄 사이에 놓인다.

서로 다른 두 날의 텍스트 사이에는 상위 NN개를 묻는 질의가 올 수 있고, 질의는 <top 10 />과 같은 태그 형태다. 숫자 앞뒤에는 항상 공백이 있으므로 질의는 <top, 숫자, /> 이렇게 공백으로 구분된 토큰 세 개로 읽으면 된다.

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

출력

질의가 나온 순서대로 답을 출력한다. 질의 <top N />에는 먼저 <top N> 줄을 출력하고, 보고할 단어마다 단어 등장횟수 형식으로 한 줄씩 출력한 다음 </top> 줄을 출력한다.

단어는 등장 횟수가 많은 순으로 정렬하고, 횟수가 같으면 알파벳 순으로 정렬한다. NN번째 단어와 등장 횟수가 같은 단어는 모두 출력한다. 그래서 출력하는 단어가 NN개보다 많아져도 모두 출력한다. 최근 7일 안에 관심 대상 단어가 NN개보다 적으면 있는 것을 모두 출력한다.

제한

  • 모든 단어는 소문자로만 이루어지고 길이는 20 이하다.
  • 서로 다른 단어는 최대 20000개 나온다.
  • 하루에 나오는 단어는 최대 20000개다.
  • 길이가 네 글자보다 짧은 단어는 관심 대상이 아니므로 세지 않는다.
  • 날짜는 최대 1000일이다.
  • 1N201 \le N \le 20