아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

전리품 나누기

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

요약
N개의 물건 가치와 P명의 다른 해적이 주어질 때, 다른 해적이 자신보다 많은 물건을 받지 않도록 자신이 가질 물건을 골라 총 가치를 최대로 만든다.
난이도

보통10점 중 6점

유형
그리디, 정렬, 누적 합, 배열
정답자
아직 제출이 없습니다

문제

해적 무리를 이끌고 상선을 성공적으로 나포했습니다. 금화와 은화를 비롯한 값진 물건들을 손에 넣었고, 이제 전리품을 나눌 차례입니다. 반란을 피하려면 모두를 만족시키는 것이 중요합니다. 어떤 해적이든 다른 해적이 자기보다 물건을 더 많이 가져가면 불만을 품습니다. 따라서 당신은 다른 해적들보다 물건을 적게 가지거나, 일부 물건을 바다에 던져 버려야 할 수도 있습니다. 다행히 다른 해적들은 물건의 가치를 전혀 모르지만, 당신은 알고 있습니다. 반란을 일으키지 않으면서 최대한 이득을 챙길 수 있을까요?

입력

입력의 첫 줄에는 이어지는 테스트 케이스의 개수를 나타내는 정수 하나가 주어집니다. 각 테스트 케이스는 다음과 같은 형식입니다.

  • 첫 줄에는 두 정수 PP와 NN이 주어집니다 (0≤P≤10000 \le P \le 1000, 1≤N≤10001 \le N \le 1000). 각각 당신이 전리품을 함께 나눠야 하는 다른 해적의 수와 물건의 개수를 뜻합니다.
  • 둘째 줄에는 NN개의 정수 viv_i가 주어집니다 (1≤vi≤10001 \le v_i \le 1000). 각 물건의 가치를 나타냅니다.

출력

각 테스트 케이스마다, 다른 모든 해적을 만족시키면서 당신이 스스로 가져갈 수 있는 물건들의 최대 가치 합을 정수 하나로 한 줄에 출력합니다.

예제1

  1. 예제 1

    입력
    2
    2 7
    1 1 1 1 3 3 7
    5 9
    2 2 4 4 6 8 11 11 13
    
    예상 출력
    10
    13