비트 개수 수열
시간 제한2초메모리 제한1024 MB
길이 n의 수열 a가 주어질 때, x부터 x+n-1까지 각 수의 이진수 1의 개수가 a와 같아지는 가장 작은 음이 아닌 정수 x를 구하고, 없으면 -1을 출력합니다.
문제
음이 아닌 정수 에 대해, 를 의 이진 표현에서 1의 개수라고 하자. 예를 들어 이므로 이다.
정수 수열 이 주어진다. 이 과 같아지는 음이 아닌 정수 가 존재하는지 판별하라. 존재한다면 그 조건을 만족하는 가장 작은 를 구하라.
입력
첫 줄에 테스트 케이스의 수 ()가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다.
첫 줄에 정수 ()이 주어진다. 둘째 줄에 개의 정수 ()이 주어진다.
모든 테스트 케이스에 걸친 의 합은 500000을 넘지 않는다.
출력
각 테스트 케이스에 대해, 조건을 만족하는 가장 작은 음이 아닌 정수 를 출력한다. 그러한 가 없다면 -1을 출력한다.