수 색칠하기
시간 제한1초메모리 제한512 MB
배열의 한 값이 다른 값의 부분 마스크이고 두 값의 XOR에 켜진 비트가 k개 이상인 쌍이 같은 색을 갖지 않도록 필요한 색의 최소 개수를 구합니다.
문제
음이 아닌 정수 배열 과 정수 가 주어진다. 두 인덱스 가 다음 두 조건을 모두 만족하면 충돌한다고 한다.
- 를 이진수로 나타냈을 때 1인 비트가 개 이상이다.
여기서 AND는 비트별 AND 연산이고, XOR은 비트별 배타적 논리합 연산이다.
개의 색으로 이루어진 일관된 색칠은 을 만족하는 정수 배열 이며, 충돌하는 어떤 인덱스 쌍 에 대해서도 가 아닌 배열이다.
의 일관된 색칠에 필요한 색의 최소 개수를 구하라.
입력
첫 줄에 두 정수 ()가 주어진다.
다음 줄에 개의 정수 ()가 주어진다.
출력
일관된 색칠에 필요한 색의 최소 개수를 한 줄에 출력한다.
힌트
두 가지 색으로 된 일관된 색칠의 한 예는 이다. 인덱스 2와 4가 충돌하므로 색이 하나로는 부족하다.