가장 개성 있는 캐릭터
시간 제한4초메모리 제한512 MB
길이 k인 비트 문자열을 골라 주어진 n개 문자열과의 최대 일치 비트 수를 최소로 만들고, 동률이면 사전순으로 가장 앞선 것을 출력한다.
문제
티라는 다른 플레이어 명과 함께 멀티플레이어 게임을 하려고 한다. 플레이어는 저마다 캐릭터를 하나씩 쓰고, 캐릭터는 특성을 몇 가지 지닌다. 게임에 있는 특성은 모두 가지이며, 각 캐릭터는 그중 일부를 지닌다.
두 캐릭터 와 의 유사도는 이렇게 센다. 각 특성 마다 와 가 둘 다 를 지니거나 둘 다 지니지 않으면 유사도가 늘어난다.
티라에게는 아직 캐릭터가 없다. 티라는 자기 캐릭터와 다른 캐릭터 사이의 유사도 중 최댓값이 가장 작아지도록 새 캐릭터를 만들려고 한다.
다른 플레이어의 캐릭터가 주어질 때 이 조건을 만족하는 티라의 캐릭터를 구하여라. 조건을 만족하는 캐릭터가 여럿이면 그중 사전순으로 가장 앞서는 하나를 답으로 삼는다.
입력
첫째 줄에 정수 과 가 공백으로 구분되어 주어진다. 은 티라를 뺀 플레이어 수로 이고, 는 특성의 개수로 이다.
다음 개 줄에는 이미 있는 캐릭터가 한 줄에 하나씩 주어진다. 각 줄은 또는 로만 이루어진 길이 의 문자열이다. 번째 자리가 이면 그 캐릭터가 번째 특성을 지닌다는 뜻이고, 이면 지니지 않는다는 뜻이다. 같은 캐릭터가 여러 번 나올 수 있다.
출력
티라의 캐릭터를 입력과 같은 형식으로 한 줄에 출력한다. 유사도의 최댓값을 가장 작게 만드는 캐릭터가 여럿이면 그중 사전순으로 가장 앞서는 문자열 하나만 출력한다. 길이가 로 같은 두 문자열은 왼쪽 자리부터 차례로 비교하고, 자리마다 이 보다 앞선다.