ALPS식 투표

면접 대비

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

요약
득표율 5% 미만인 직원을 제외한 뒤 득표수를 1~14로 나눈 점수 중 상위 14개를 뽑아 각 직원이 받은 칩 수를 이름 순으로 출력하는 문제입니다.
난이도

보통10점 중 4점

유형
시뮬레이션, 정렬, 구현
정답자
아직 제출이 없습니다

문제

한 프로그래밍 대회가 끝난 뒤, 참가자들은 수고비를 받을 가치가 있다고 생각하는 스태프 한 명에게 투표할 수 있다. 참가자는 투표하지 않아도 된다.

전체 참가자 수를 X라 하자. 득표수가 전체 참가자 수의 5% 미만인 스태프는 후보에서 제외한다. 남은 각 스태프에 대해 득표수를 1, 2, ..., 14로 나눈 14개의 점수를 만든다.

모든 후보의 점수를 모아 점수 집합을 만든 뒤, 큰 점수부터 14개를 차례로 고른다. 점수가 선택될 때마다 그 점수를 만든 스태프가 칩 1개를 받는다. 점수 집합에 들어 있는 모든 값은 서로 다르다.

각 스태프의 득표수가 주어질 때, 후보로 남은 각 스태프가 최종적으로 받는 칩의 개수를 구하라.

입력

첫 번째 줄에 참가자 수 X가 주어진다. (1 <= X <= 2,500,000)

두 번째 줄에 스태프 수 N이 주어진다. (0 <= N <= 10)

다음 N개의 줄에는 스태프의 이름과 그 스태프가 받은 득표수가 공백으로 구분되어 주어진다. 스태프 이름은 대문자 알파벳 한 글자이다.

출력

득표율이 5% 이상인 스태프를 이름의 사전순으로 한 줄에 하나씩 출력한다. 각 줄에는 스태프 이름과 그 스태프가 받은 칩의 개수를 공백으로 구분해 출력한다.

조건을 만족하는 스태프가 없다면 아무것도 출력하지 않는다.

예제3

  1. 예제 1

    입력
    235217
    3
    A 107382
    C 18059
    B 43265
    
    예상 출력
    A 9
    B 4
    C 1
    
  2. 예제 2

    입력
    245143
    4
    F 14845
    A 104516
    B 52652
    C 14161
    
    예상 출력
    A 8
    B 4
    C 1
    F 1
    
  3. 예제 3

    입력
    206278
    5
    D 44687
    A 68188
    C 7008
    B 48377
    G 9665
    
    예상 출력
    A 6
    B 4
    D 4