시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 (추가 시간 없음) | 1024 MB (추가 메모리 없음) | 178 | 69 | 61 | 38.608% |
플레이어 $N$명이 $M$개의 팀으로 나누어 게임을 진행하려 한다. 각 팀의 인원수는 $t_1,$ $t_2,$ $\cdots,$ $t_M$이며, $i$번째 플레이어는 리더 점수 $L_i$와 플레이어 점수 $P_i$를 가진다. 각 플레이어는 정확히 한 팀에 속해야 한다.
각 팀의 리더는 팀에 속한 플레이어 중 리더 점수가 제일 큰 사람이다. 만약 한 팀에 리더 점수가 가장 큰 플레이어가 여러 명이라면, 한 플레이어만 리더가 된다. 이때 팀의 능력은 리더의 플레이어 점수로 정의된다.
플레이어를 각 팀에 적절히 분배하여 모든 팀의 능력의 합을 최대한 크게 해 보자!
첫째 줄에 $N$, $M$이 주어진다. ($1 \le M \le N \le 3 \cdot 10^5$)
이어지는 줄부터 $N$개의 줄에 걸쳐 두 정수 $L_i$와 $P_i$가 주어진다. ($ 1 \le L_i,P_i \le 10^5$)
마지막 줄에는 $M$개의 정수가 주어진다. $i$번째 수는 $t_i$이다. ($1 \le t_i \le N$, $\displaystyle \sum_{i=1}^M{t_i}=N$)
팀을 적절히 분배하였을 때 각 팀의 능력의 합의 최댓값을 출력하라.
7 3 2 4 2 4 3 1 1 2 3 4 1 5 6 7 1 2 4
16
University > 서강대학교 > 2021 Sogang Programming Contest > Champion E번
University > 서강대학교 > 2021 Sogang Programming Contest > Open M번