시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
4.5 초 (하단 참고) | 512 MB | 54 | 22 | 17 | 37.778% |
Albert는 친구들과 소수 (prime) 카드 게임을 하기로 했다. 총 m명의 플레이어가 있고, 양의 정수가 하나씩 적혀있는 n장의 카드가 있다. 편의상 카드에 적힌 수를 v[1], v[2], ..., v[n]이라 하자.
먼저 플레이어들에게 카드를 나눠준 후, 각자 점수를 계산하여 승자를 가린다.
n장의 카드는 아래 규칙에 따라 m명의 플레이어에게 나누어져야 한다:
n장의 카드를 모두 분배한 후 아래 규칙에 따라 각자 점수를 계산한다:
예를 들어 n = m = 3이고 카드에 적힌 수가 [1, 2, 3]이라 하자. 이 때, 각 플레이어는 정확히 한 장씩 카드를 받는다.
다른 예로, n = 3, m = 2이고 카드에 적힌 수가 [23, 29, 41]이라 하자. 이 때, 한 플레이어는 카드 한 장을 받고 다른 플레이어는 두 장을 받게 된다. 아래와 같은 세 가지 방법으로 카드를 분배할 수 있다.
Albert는 게임의 흥미를 위해 승자의 점수가 최소가 되도록 카드를 나눠주고 싶다. 위에 언급한 두 번째 예제의 경우 방법 1은 승자의 점수가 4이고 방법 2와 3은 승자의 점수가 2가 되므로 정답은 2가 된다. Albert가 달성 할 수 있는 승자의 점수 최소값을 구해보자.
소수 (prime number): 양의 정수 P가 1보다 크고 P의 약수가 1과 P뿐이면 소수이다.
첫 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스는 두 줄에 걸쳐 주어진다.
첫 줄에 n과 m이 공백으로 구분되어 주어진다.
둘째 줄에 n개의 정수가 (v[1], ..., v[n]) 공백으로 구분되어 주어진다.
각 테스트 케이스의 정답을 각 줄에 출력한다.
6 3 3 1 2 3 3 3 23 29 41 3 2 23 29 41 4 4 23 29 31 37 5 2 10 20 30 40 50 5 3 10 20 30 40 50
1 4 2 4 1 1
예제 1: 본문에서 다루었다.
예제 2: 추가 설명 없음.
예제 3: 본문에서 다루었다.
예제 4: 추가 설명 없음.
예제 5: 가령 [10, 20, 30, 50]과 [40]을 나눠주면 두 플레이어 모두 1점을 얻게 된다.
예제 6: 가령 [10], [40], 그리고 [20, 30, 50]을 나눠주면 모든 플레이어가 각각 1점을 얻게 된다.