Believer
시간 제한2초메모리 제한512 MB
합이 n인 양의 정수 수열 가운데, 서로 다른 값마다 등장 횟수의 이진수 1 개수를 더한 값이 최대가 되는 경우를 각 n마다 구한다.
문제
용을 믿는가? 밤에 용이 깨어나서 이런 질문을 던진다고 상상해 보자.
양의 정수로 이루어진 수열 를 생각하자.
를 에서 가 나타나는 횟수로 정의하자. 예를 들어 이다.
를 의 이진 표현에서 1의 개수로 정의하자. 예를 들어 이다.
로 정의하자. 예를 들어 이다.
주어진 에 대해, 을 만족하는 모든 수열 중에서 의 최댓값을 구하자.
무엇이라고 답하겠는가?
입력
첫째 줄에 정수 가 주어진다. ()
다음 개 줄에 각각 정수 이 하나씩 주어진다. ()
출력
각 테스트 케이스에 대해 입력 순서대로 답을 한 줄에 하나씩 출력한다.
힌트
첫 번째 예제에서 을 만족하는 수열의 예로 이 있다.