만드는 중입니다

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

이상한 드래프트

면접 대비

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

요약
각 테스트 케이스에서 연속된 K명을 골라, 아홉 포지션마다 가장 높은 수비 능력의 합이 최대가 되는 값을 구합니다.
난이도

보통10점 중 5점

유형
슬라이딩 윈도우, 큐, 배열
정답자
아직 제출이 없습니다

문제

2150년, Kureyo Baseball Organization(이하 KBO)은 100번째 구단의 창단을 승인하였다. 그 전까지는 지난 시즌의 순위에 따라 지그재그식으로 한 선수씩 선발하였지만, 구단이 매우 많아지면서 드래프트가 너무 오랜 시간이 걸리게 되자 KBO는 다음과 같은 새로운 드래프트 룰을 발표하였다.

  • 드래프트를 신청한 선수 NN명은 출신 학교, 대회 입상 성적, 신체 조건 등의 다양한 요소를 고려한 임의의 순서로 정렬된다.
  • 각 선수는 고유 수비 위치를 나타내는 정수 PiP_i (1≤Pi≤91 \le P_i \le 9)와 수비 능력을 나타내는 정수 AiA_i로 표현된다.
  • 각 구단은 자신의 드래프트 차례가 오면 선수 목록에서 연속된 KK명을 뽑고, 해당 선수들을 목록에서 지운다.
  • 이때 선택된 KK명 안에는 아홉 가지 수비 위치 각각을 수비할 수 있는 선수가 반드시 적어도 한 명씩 포함되어야 한다.

당신은 전년도에 꼴찌를 한 '쌍둥이들'의 감독으로 이번 드래프트에서 가장 먼저 KK명의 선수를 선택하게 되었다. 쌍둥이들의 고질적인 수비 불안을 해소하기 위해 다음 시즌에는 수비 능력 위주로 팀을 리빌딩할 예정이어서, 이번 드래프트는 매우 중요하다.

NN명의 선수들의 수비 위치와 수비 능력이 드래프트 신청자 목록에 주어진 순서대로 주어질 때, 각 수비 위치에서 가장 뛰어난 선수들의 능력의 합이 최대가 되도록 KK명을 뽑는 프로그램을 작성하라. 단, 드래프트가 불가능한 경우는 없다고 가정한다.

입력

입력은 TT개의 테스트 케이스로 구성된다. 입력의 첫 줄에는 TT가 주어진다.

각 테스트 케이스의 첫 줄에는 드래프트를 신청한 선수의 수 NN과 한 번에 뽑을 수 있는 선수의 수 KK가 공백으로 구분되어 주어진다. (9≤K≤N≤100 0009 \le K \le N \le 100\,000) 이후 NN줄에 각 선수의 수비 위치 PiP_i (1≤Pi≤91 \le P_i \le 9)와 수비 능력 AiA_i (1≤Ai≤1001 \le A_i \le 100)가 공백으로 구분되어 주어진다.

출력

각 테스트 케이스마다 한 줄에 하나씩, 각 수비 위치별로 가장 뛰어난 선수들의 수비 능력의 합의 최댓값을 출력한다.

예제1

  1. 예제 1

    입력
    2
    10 9
    1 1
    2 1
    3 1
    4 1
    5 1
    6 1
    7 1
    8 1
    9 1
    1 100
    17 12
    1 1
    2 1
    3 1
    4 1
    5 1
    6 1
    7 1
    8 1
    9 1
    8 2
    7 3
    6 4
    5 5
    4 6
    3 7
    2 8
    1 9
    
    예상 출력
    108
    45