경계는 어디인가
면접 대비시간 제한5초메모리 제한512 MB
길이 n인 이진 문자열 m개가 주어질 때 경계를 두 현 사이에 두고 양쪽에 동·서 문화를 배정해 불일치를 최소화합니다. 최소 불일치가 되는 경계의 두 현을 출력하고 최솟값이 같다면 가장 서쪽 경계를 택합니다.
문제
어떤 행성에 있는 섬나라 JAGAN은 동서로 매우 길고 좁게 뻗어 있다. 이 긴 나라는 동부와 서부의 두 큰 문화권으로 이루어져 있다고 한다. 동부 지역은 동부 문화적 특징을, 서부 지역은 서부 문화적 특징을 띠는 경향이 있지만, 두 문화권의 경계가 분명하지 않다는 점이 오래 문제가 되어 왔다.
주어진 데이터 집합으로 경계를 추정하는 과제가 주어진다.
과제의 자세한 내용은 다음과 같다.
- JAGAN은 동서 방향으로 일직선을 이루는 개의 현으로 나뉜다. 각 현에는 서쪽에서 동쪽으로 1, 2, ..., 의 번호가 붙는다.
- 각 데이터 집합은 개의 특징으로 이루어지며, 각 현마다 '
E'(동부) 또는 'W'(서부)가 주어진다. 이 데이터는 음식, 의복 등 가지 관점에서 각 현이 동부적 특징을 갖는지 서부적 특징을 갖는지를 나타낸다. - 추정에서는 오차가 최소가 되는 문화 경계를 골라야 한다. 즉, 동부 쪽에 있는 '
W'의 개수와 서부 쪽에 있는 'E'의 개수의 합을 최소로 만들어야 한다. - 추정에서 문화 경계는 두 현 사이의 경계 중에서만 고를 수 있다.
모든 현이 동부 문화권 또는 서부 문화권으로 추정되는 경우도 있다. 이때는 간단히 하기 위해 경계가 0번 현과 1번 현 사이 또는 번 현과 번 현 사이에 놓인 것으로 생각해야 한다. 최솟값이 여러 개이면 가장 서쪽(번호가 가장 작은) 결과를 출력해야 한다.
이 과제를 해결하는 프로그램을 작성하라.
입력
각 입력은 다음과 같은 형식이다.
$n$ $m$
$d_{11}$...$d_{1n}$
...
$d_{m1}$...$d_{mn}$
첫 줄은 두 정수 (), ()으로, 각각 현의 개수와 과제의 특징 개수를 나타낸다. 다음 개의 줄은 과제에서 주어지는 데이터 집합이다. 각 줄은 정확히 개의 문자로 이루어진다. 번째 줄의 번째 문자 는 'E'(동부) 또는 'W'(서부)이며, 번째 현이 번째 관점에서 동부적 특징을 갖는지 서부적 특징을 갖는지를 나타낸다.
출력
추정 결과를 한 줄에 출력한다. 출력은 경계에 닿는 두 현을 나타내는 두 정수를 오름차순으로 나열한 것이다.