Double Up 2
시간 제한2초메모리 제한1024 MB
각 원소를 원하는 만큼 두 배 해 M으로 나눈 나머지로 바꿀 때, 가장 많이 등장하는 값의 최대 횟수와 그때 필요한 최소 연산 횟수를 구한다.
문제
개의 정수로 이루어진 배열 와 정수 이 주어진다. 달구는 이 배열에 다음 작업을 원하는 만큼 수행할 수 있다.
- 을 만족하는 를 고른다. 를 으로 교체한다.
달구가 모든 작업을 수행한 뒤, 배열에서 가장 많이 등장하는 수를 라 하자. 의 등장 횟수로 가능한 최댓값을 구하고, 그러한 배열 상태를 만들기 위해 진행해야 하는 연산의 최소 횟수를 구하라.
입력
첫째 줄에 열의 길이 과 이 공백으로 구분되어 주어진다.
둘째 줄에 개의 정수 이 공백으로 구분되어 주어진다.
출력
작업을 원하는 만큼 수행한 뒤, 배열에서 가장 많이 등장하는 수의 가능한 최대 등장 횟수와 그런 배열을 만들기 위해 진행해야 하는 연산의 최소 횟수를 공백으로 구분하여 출력한다.