AT_icpc2015summer_day4_a Where is the Boundary

题目描述

### 问题描述 在某个星球上,有一个狭长的岛国 JAGAN,它东西延伸。这个狭长的国家被认为由两个主要的文化区域组成——东部和西部。东部地区倾向于具有东部文化特征,而西部地区倾向于具有西部文化特征。当然,这两个文化区域之间的边界并不清晰,这已经成为一个问题。 你被分配了一个任务,使用给定的数据集来估计这个边界。 任务的更精确规范如下: 1. JAGAN 被划分为 $n$ 个县,这些县在东西方向上形成一条直线。每个县从西到东编号为 $1, 2, \ldots, n$。 2. 每个数据集由 $m$ 个特征组成,每个特征对每个县都有 `E`(东部)或 `W`(西部)的标记。这些数据表明每个县从 $m$ 个不同的角度(例如食物、服装等)具有东部或西部的特征。 3. 在估计中,你需要选择一个文化边界,使得错误最小化。也就是说,你需要最小化东部一侧的 `W` 和西部一侧的 `E` 的总和。 4. 在估计中,你只能选择两个县之间的边界作为文化边界。 有时,所有县可能都被估计为东部或西部文化区域。在这些情况下,为了简化,你必须虚拟地考虑边界位于第 $0$ 县和第 $1$ 县之间,或者第 $n$ 县和第 $n+1$ 县之间。 当你有多个最小值时,你必须输出最西边的(编号最小的)结果。 编写一个程序来解决这个任务。

输入格式

每个输入的格式如下: $n$ $m$ $d_{11}$ $\ldots$ $d_{1n}$ $\ldots$ $d_{m1}$ $\ldots$ $d_{mn}$ 第一行包含两个整数 $n$($1 \le n \le 10{,}000$)和 $m$($1 \le m \le 100$),表示县的数目和任务中的特征数目。接下来的$m$行是任务中给定的数据集。每行包含恰好 $n$ 个字符。第 $i$ 行的第 $j$ 个字符 $d_{ij}$ 是 `E`(东部)或 `W`(西部),表示第 $j$ 县从第 $i$ 个角度具有东部或西部的特征。

输出格式

在一行中打印估计的结果。输出由两个按升序排列的整数组成,表示接触边界的两个县。 ### 样例解释 #### 样例输入1 ``` 2 1 WE ``` #### 样例输出1 ``` 1 2 ``` #### 样例输入2 ``` 3 2 WWE WEE ``` #### 样例输出2 ``` 1 2 ``` 两个估计`1 2`和`2 3`都达到了1个错误作为最小值。根据你必须采用最西边的估计的限制,你必须输出`1 2`。 #### 样例输入3 ``` 3 1 WWW ``` #### 样例输出3 ``` 3 4 ``` 在这种情况下,所有县都是西部的。如问题陈述中所述,你必须虚拟地考虑边界位于第三和第四县之间。 #### 样例输入4 ``` 3 1 WEW ``` #### 样例输出4 ``` 1 2 ``` 你不能假设 `E` 和 `W` 是分开的。 --- 翻译:@[zengyukai2012](https://www.luogu.com.cn/user/1090444)