만드는 중입니다

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

Please Please Please

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

요약
학생들의 점수, 요청한 등급, 'please' 횟수가 주어질 때 많이 요청한 학생부터 만족하도록 A, B, C, D 컷오프를 정합니다.
난이도

보통10점 중 5점

유형
완전 탐색, 누적 합, 구현
정답자
아직 제출이 없습니다

문제

당신은 사람들을 기쁘게 하고 싶었고, 적어도 실제로 그렇게 해 왔다. 이제 당신은 교사이고, 학생들은 서로 모순되는 작업을 포함해 여러 가지 일을 부탁한다. 공정해야 하지만 일을 조금 더 쉽게 하고 싶기도 하다. 그래서 일의 일부를 자동화하기로 한다. 첫 번째 작업은 학기 말에 문자 등급을 매기는 것이다.

여러 학생이 수업의 총점을 정수로, 원하는 문자 등급과 함께 이메일로 보내 왔다. 평소라면 이런 부탁은 무시하겠지만, 이 학생들은 마법의 단어 "please"를 썼다. 그래서 이런 부탁 중 일부는 들어줘야겠다고 생각한다.

단순하게 문자 등급은 A, B, C, D, F 다섯 가지이다. 각 등급을 0 이상 100 이하의 어떤 정수 총점으로든 받을 수 있도록 컷오프를 정한다. 그 점수를 받은 학생이 없어도 된다. 또한 다음 조건을 만족해야 한다.

  • A를 받을 수 있는 총점은 B를 받을 수 있는 어떤 총점보다 높다.
  • B를 받을 수 있는 총점은 C를 받을 수 있는 어떤 총점보다 높다.
  • C를 받을 수 있는 총점은 D를 받을 수 있는 어떤 총점보다 높다.
  • D를 받을 수 있는 총점은 F를 받을 수 있는 어떤 총점보다 높다.

등급을 요청한 학생은 다른 등급을 받으면, 그것이 더 높은 등급이라도 실망한다. 예를 들어 B를 요청한 학생은 C나 A를 받으면 실망하며, B가 아닌 어떤 등급을 받아도 실망한다.

등급 배정은 다음 우선순위를 따른다.

  1. "please"를 가장 많이 쓴 학생부터 만족한 학생 수를 최대화한다. 그다음으로 많이 쓴 학생들의 만족 수를 최대화하고, 이후도 같은 방식으로 한다. 가장 많이 쓴 학생들의 만족이 다른 모든 학생의 불만보다 우선이다.
  2. 위 조건을 만족하는 배정 중에서 A 컷오프를 최대화한다.
  3. 그다음 B 컷오프를 최대화한다.
  4. 그다음 C 컷오프를 최대화한다.
  5. 마지막으로 D 컷오프를 최대화한다.

각 학생이 요청한 등급, 총점, "please"를 쓴 횟수가 주어질 때, 위 규칙에 따른 최적의 컷오프를 구하라.

입력

첫 줄에 정수 nn (1≤n≤1051 \le n \le 10^5)이 주어진다. 이는 학생 수이다. 이어지는 nn개의 줄에는 공백 한 칸으로 구분된 세 개의 토큰이 주어진다.

  • 정수 gg (0≤g≤1000 \le g \le 100)는 학생의 총점이다.
  • 대문자 LL (A, B, C, D, F 중 하나)은 원하는 문자 등급이다.
  • 정수 pp (1≤p≤1051 \le p \le 10^5)는 학생이 "please"를 쓴 횟수이다.

출력

A, B, C, D의 컷오프를 이 순서대로 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    5
    90 A 1
    88 C 5
    85 B 3
    50 D 2
    89 F 3
    
    예상 출력
    90 89 88 50
    
  2. 예제 2

    입력
    3
    90 B 5
    90 A 4
    90 A 4
    
    예상 출력
    100 90 89 88