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