중앙값 역전 문자열
시간 제한1초메모리 제한1024 MB
길이 n인 A, B 문자열 중 역전쌍이 정확히 k개인 것을 사전순으로 나열했을 때 가운데에 놓이는 문자열을 구합니다.
문제
이 문제에서는 중앙값과 역전이라는 두 가지 개념을 사용한다.
중앙값: 정렬된 원소 리스트 가 있다고 하자. 중앙값은 리스트의 가운데, 즉 정확히 절반이 되는 위치에 있는 원소이다. 원소 개수가 홀수이면 중앙값은 하나이다. 예를 들어 원소가 13개이면 이 중앙값이다. 앞의 원소 수와 뒤의 원소 수가 같기 때문이다. 원소 개수가 짝수이면 중앙값은 두 개이다. 예를 들어 원소가 14개이면 과 이 중앙값이다. 앞의 원소 수와 뒤의 원소 수가 같다.
역전: 'A'와 'B'로만 이루어진 문자열이 있다고 하자. 예를 들어 AAABABAA이다. 역전은 한 쌍의 문자 중 하나는 B, 다른 하나는 A이고, B가 A보다 문자열에서 앞에 있는 경우를 말한다. 예시 문자열에서 4번째 위치의 B와 5번째 위치의 A가 역전을 이룬다. 4번째 위치의 B와 7번째 위치의 A도 역전을 이룬다. 이 예시 문자열의 역전은 모두 5개이다.
친구 미치오는 'A'와 'B'로만 이루어진 문자열 목록을 가지고 있다. 각 문자열의 길이는 n이다. 목록의 각 문자열에는 역전이 정확히 k개 있다.
미치오는 목록에 역전이 정확히 k개인 문자열이 전부 들어 있다고 주장한다. 당신은 이 주장을 검증하려고 한다. 미치오는 문자열을 사전순으로 정렬했고, 당신은 중앙값 문자열을 제시해 그의 목록이 맞는지 확인한다.
각 문자열의 길이 n과 역전 개수 k가 주어지면, 길이가 n인 문자열 목록에서 중앙값 문자열을 출력하라.
입력
입력은 한 줄이며, 정수 두 개로 이루어진다. 첫 번째는 n ()으로, 미치오 목록에 있는 각 문자열의 길이이다. 두 번째는 k로, 각 문자열의 역전 개수이다. 길이가 n이고 역전이 정확히 k개인 'A'와 'B' 문자열이 적어도 하나 존재하도록 k가 주어진다고 보장된다. (k의 범위는 다른 제약에서 정해지므로 따로 주어지지 않는다.)
출력
길이가 n이고 역전이 k개인 'A'와 'B' 문자열의 개수가 홀수이면, 중앙값 문자열을 한 줄로 출력한다. 개수가 짝수이면, 중앙값 문자열 두 개를 각각 한 줄씩 두 줄로 출력한다. 두 문자열은 사전순으로 출력한다.