경계는 어디인가

면접 대비

시간 제한5초메모리 제한512 MB

요약
길이 n인 이진 문자열 m개가 주어질 때 경계를 두 현 사이에 두고 양쪽에 동·서 문화를 배정해 불일치를 최소화합니다. 최소 불일치가 되는 경계의 두 현을 출력하고 최솟값이 같다면 가장 서쪽 경계를 택합니다.
난이도

보통10점 중 5점

유형
누적 합, 배열, 그리디, 구현
정답자
아직 제출이 없습니다

문제

어떤 행성에 있는 섬나라 JAGAN은 동서로 매우 길고 좁게 뻗어 있다. 이 긴 나라는 동부와 서부의 두 큰 문화권으로 이루어져 있다고 한다. 동부 지역은 동부 문화적 특징을, 서부 지역은 서부 문화적 특징을 띠는 경향이 있지만, 두 문화권의 경계가 분명하지 않다는 점이 오래 문제가 되어 왔다.

주어진 데이터 집합으로 경계를 추정하는 과제가 주어진다.

과제의 자세한 내용은 다음과 같다.

  1. JAGAN은 동서 방향으로 일직선을 이루는 nn개의 현으로 나뉜다. 각 현에는 서쪽에서 동쪽으로 1, 2, ..., nn의 번호가 붙는다.
  2. 각 데이터 집합은 mm개의 특징으로 이루어지며, 각 현마다 'E'(동부) 또는 'W'(서부)가 주어진다. 이 데이터는 음식, 의복 등 mm가지 관점에서 각 현이 동부적 특징을 갖는지 서부적 특징을 갖는지를 나타낸다.
  3. 추정에서는 오차가 최소가 되는 문화 경계를 골라야 한다. 즉, 동부 쪽에 있는 'W'의 개수와 서부 쪽에 있는 'E'의 개수의 합을 최소로 만들어야 한다.
  4. 추정에서 문화 경계는 두 현 사이의 경계 중에서만 고를 수 있다.

모든 현이 동부 문화권 또는 서부 문화권으로 추정되는 경우도 있다. 이때는 간단히 하기 위해 경계가 0번 현과 1번 현 사이 또는 nn번 현과 n+1n+1번 현 사이에 놓인 것으로 생각해야 한다. 최솟값이 여러 개이면 가장 서쪽(번호가 가장 작은) 결과를 출력해야 한다.

이 과제를 해결하는 프로그램을 작성하라.

입력

각 입력은 다음과 같은 형식이다.

$n$ $m$

$d_{11}$...$d_{1n}$

...

$d_{m1}$...$d_{mn}$

첫 줄은 두 정수 nn (1≤n≤10,0001 \le n \le 10{,}000), mm (1≤m≤1001 \le m \le 100)으로, 각각 현의 개수와 과제의 특징 개수를 나타낸다. 다음 mm개의 줄은 과제에서 주어지는 데이터 집합이다. 각 줄은 정확히 nn개의 문자로 이루어진다. ii번째 줄의 jj번째 문자 dijd_{ij}는 'E'(동부) 또는 'W'(서부)이며, jj번째 현이 ii번째 관점에서 동부적 특징을 갖는지 서부적 특징을 갖는지를 나타낸다.

출력

추정 결과를 한 줄에 출력한다. 출력은 경계에 닿는 두 현을 나타내는 두 정수를 오름차순으로 나열한 것이다.

예제4

  1. 예제 1

    입력
    2 1
    WE
    
    예상 출력
    1 2
    
  2. 예제 2

    입력
    3 2
    WWE
    WEE
    
    예상 출력
    1 2
    
  3. 예제 3

    입력
    3 1
    WWW
    
    예상 출력
    3 4
    
  4. 예제 4

    입력
    3 1
    WEW
    
    예상 출력
    1 2