AT_arc175_f [ARC175F] Append Same Characters
Description
[problemUrl]: https://atcoder.jp/contests/arc175/tasks/arc175_f
英小文字からなる $ N $ 個の文字列 $ S_1,\ \dots,\ S_N $ が与えられます.以下の $ 2 $ 種類の操作を好きな順番で $ 0 $ 回以上好きな回数行うことを考えます.
- 英小文字 $ c $ を $ 1 $ つ選ぶ.全ての $ 1\ \leq\ i\leq\ N $ について,$ S_i $ の末尾に $ c $ を追加する.
- $ 1\ \leq\ i\ \leq\ N-1 $ を満たす整数 $ i $ を $ 1 $ つ選ぶ.$ S_i $ と $ S_{i+1} $ を入れ替える.
全ての操作の終了後に,辞書順で $ S_i\ \leq\ S_{i+1} $ が各 $ 1\ \leq\ i\ \leq\ N-1 $ について成り立つようにするとき,操作の合計回数の最小値を求めてください.
辞書順とは文字列 $ S\ =\ S_1S_2\ldots\ S_{|S|} $ が文字列 $ T\ =\ T_1T_2\ldots\ T_{|T|} $ より**辞書順で小さい**とは,下記の 1. と 2. のどちらかが成り立つことを言います. ここで,$ |S|,\ |T| $ はそれぞれ $ S,\ T $ の長さを表します.
1. $ |S|\ \lt\ |T| $ かつ $ S_1S_2\ldots\ S_{|S|}\ =\ T_1T_2\ldots\ T_{|S|} $.
2. ある整数 $ 1\ \leq\ i\ \leq\ \min\lbrace\ |S|,\ |T|\ \rbrace $ が存在して,下記の $ 2 $ つがともに成り立つ.
- $ S_1S_2\ldots\ S_{i-1}\ =\ T_1T_2\ldots\ T_{i-1} $.
- $ S_i $ が $ T_i $ よりアルファベット順で小さい文字である.
Input Format
N/A
Output Format
N/A
Explanation/Hint
### 制約
- 入力される数値は全て整数
- $ 2\ \le\ N\ \le\ 3\ \times\ 10^5 $
- $ S_i $ は英小文字からなる文字列
- $ 1\ \le\ |S_i| $
- $ |S_1|\ +\ |S_2|\ +\ \dots\ +\ |S_N|\ \le\ 3\ \times\ 10^5 $
### Sample Explanation 1
操作の一例を示します. - $ S_2 $ と $ S_3 $ を入れ替える.$ (S_1,\ \ldots,\ S_5)\ =\ ( $`ab`, `a`, `rac`, `dab`, `ra`$ ) $ となる. - 各文字列の末尾に `z` を追加する.$ (S_1,\ \ldots,\ S_5)\ =\ ( $`abz`, `az`, `racz`, `dabz`, `raz`$ ) $ となる. - $ S_3 $ と $ S_4 $ を入れ替える.$ (S_1,\ \ldots,\ S_5)\ =\ ( $`abz`, `az`, `dabz`, `racz`, `raz`$ ) $ となる.このとき全ての $ i\ =\ 1,\ \ldots,\ N-1 $ について $ S_i\ \leq\ S_{i+1} $ が満たされている. $ 3 $ 回未満の操作により,全ての $ i\ =\ 1,\ \ldots,\ N-1 $ について $ S_i\ \leq\ S_{i+1} $ が満たされている状態にすることはできないので,$ 3 $ を出力します.
### Sample Explanation 2
操作を行う前の時点で,全ての $ i\ =\ 1,\ \ldots,\ N-1 $ について $ S_i\ \leq\ S_{i+1} $ が満たされています.
### Sample Explanation 3
$ i\ \neq\ j $ に対して $ S_i\ =\ S_j $ となりうることに注意してください.