시리얼 넘버
시간 제한3초메모리 제한128 MB
서로 다른 일련번호들과 정수 M이 주어질 때, 합이 M의 배수가 되는 가장 큰 부분집합의 크기를 구한다.
문제
기타리스트 강토는 공연을 앞두고 있다. 그런데 무대에 오르기 직전, 강토의 기타가 다른 사람들의 기타와 뒤섞였고, 강토는 어떤 기타가 자기 것인지 잊어버렸다.
다행히 모든 기타에는 서로 다른(유일한) 시리얼 넘버가 붙어 있다. 강토는 자신이 원래 가지고 있던 기타들의 시리얼 넘버를 모두 더하면 그 합이 의 배수가 된다는 사실만 기억하고 있다.
무대 위에 놓인 모든 기타의 시리얼 넘버와 정수 이 주어질 때, 강토의 기타가 될 수 있는 기타 개수의 최댓값을 구하여라. 즉, 시리얼 넘버의 합이 의 배수가 되도록 기타들을 고를 때, 고를 수 있는 기타 개수의 최댓값을 출력하면 된다.
입력
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 다음과 같은 형식이다.
- 첫째 줄: 기타의 개수 과 정수 . (, )
- 둘째 줄: 기타의 시리얼 넘버 . (, 모든 시리얼 넘버는 서로 다르다.)
출력
각 테스트 케이스마다, 시리얼 넘버의 합이 의 배수가 되도록 기타를 골랐을 때 고를 수 있는 기타 개수의 최댓값을 한 줄에 하나씩 출력한다.
입력으로는 항상 답이 존재하는 경우만 주어진다.