만드는 중입니다

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

경쟁형 아케이드 농구

면접 대비

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

요약
각 선수의 점수를 입력 순서대로 누적하여 최소 점수 p점에 처음 도달한 선수를 도달한 순서대로 출력합니다. 아무도 도달하지 못하면 No winner!를 출력합니다.
난이도

쉬움10점 중 3점

유형
해시맵, 시뮬레이션
정답자
아직 제출이 없습니다

문제

아케이드 농구 대회에 참가했다. 제한 시간이 끝날 때까지 가능한 한 많은 점수를 얻는 것이 목표다. 진행자는 점수판이 고장 나서 점수를 기록할 수 없다고 알렸다. 경험 많은 프로그래머인 당신은 참가자의 이름과 점수를 기록하고, 대회가 끝나면 우승자를 발표하는 프로그램을 작성하기로 했다.

입력

첫 줄에 세 정수가 주어진다. 참가자 수 nn (1≤n≤100 0001 \le n \le 100\,000), 우승에 필요한 최소 점수 pp (10≤p≤10 00110 \le p \le 10\,001), 선수 이름과 점수가 적힌 줄 수 mm (1≤m≤200 0001 \le m \le 200\,000)이다. 다음 nn개 줄에는 참가자의 이름이 한 번씩 주어진다. 이름은 영숫자 20자 이하로 이루어진다. 나머지 mm개 줄에는 각각 참가자의 이름과 그가 얻은 점수(1, 2, 3 중 하나)가 주어진다.

출력

최소 점수에 도달한 참가자의 이름을 한 줄에 하나씩 출력한다. 우승자마다 "<Winner> wins!" 형식으로 출력한다. 우승자는 필요한 점수에 도달한 순서대로 출력한다. 아무도 최소 점수에 도달하지 못하면 "No winner!"(느낌표 포함)를 출력한다.

예제3

  1. 예제 1

    입력
    3 10 13
    John
    Kelly
    George
    Kelly 1
    George 2
    Kelly 1
    John 2
    George 1
    John 3
    Kelly 3
    Kelly 1
    George 3
    George 1
    John 3
    George 3
    Kelly 1
    
    예상 출력
    George wins!
    
  2. 예제 2

    입력
    4 10 13
    Bob
    Nina
    Jess
    Tim
    Nina 2
    Bob 2
    Nina 1
    Jess 3
    Bob 2
    Jess 2
    Nina 1
    Jess 2
    Nina 3
    Bob 1
    Nina 3
    Jess 3
    Bob 2
    
    예상 출력
    Nina wins!
    Jess wins!
    
  3. 예제 3

    입력
    4 15 13
    Bob
    Nina
    Jess
    Tim
    Nina 2
    Bob 2
    Nina 1
    Jess 3
    Bob 2
    Jess 2
    Nina 1
    Jess 2
    Nina 3
    Bob 1
    Nina 3
    Jess 3
    Bob 2
    
    예상 출력
    No winner!