AT_tkppc2015_g おおきなかずを作った (I made a huge number)
Description
[problemUrl]: https://atcoder.jp/contests/tkppc/tasks/tkppc2015_g
joishinoお姉ちゃんは、のどかな田舎にある小さな分校にやってきた。
どうやら、この学校では特殊な遊びが流行っているようである。
遊びのルールは以下の通りである。
3. この遊びは、二人で行われる。
4. まず一人が、いくつかの互いに異なる自然数を選び、それらを小さい順に右から左へと並べていき、連結して新たな数を作る。
5. ここでいう自然数とは、$ 1 $以上の整数で、先頭に来る数字が$ 0 $でないものとする。つまり、$ 01 $や$ 0099 $などは認められない。
(例えば、選んだ自然数が、$ 5 $ $ 18 $ $ 48 $ $ 52 $ ならば、$ 5248185 $ という数ができる。)
7. そして作った数を、相手に見せる。
8. 見せられた人は、その数を作ることのできる、もともとの数の組をひとつ予想する。
9. 予想した数の組の中で最大の数が、作られる時に使われた数の組の中で最大の数以下ならば、予想した側の勝ち、そうでなければ、数を作った側の勝ちとなる。
joisinoお姉ちゃんは、ある小学生とこの遊びをすることになった。
この小学生は、連休中にやる気を出して、大きな数を作ってきたようである。
予想する側になったjoisinoお姉ちゃんは、自身のプライドにかけてこの遊びに勝利したいと思った。
そしてjoisinoお姉ちゃんは、予想する側が最善を尽くすことで必ず勝利できると気づいた。
そこで優秀なプログラマーであるjoisinoお姉ちゃんは、与えられた数を元に、その数を作ることのできる数字の組のうち、最大の数がとりうる最小の桁数を計算するプログラムを作成することにした。
Input Format
入力は以下の形式で標準入力から与えられる。
. > $ N $ $ S $
- $ 1 $行目には、与えられる数の桁数$ N(1≦N≦10^6) $が書かれている
- $ 2 $行目には、$ N $桁の数が書かれている。(この数の先頭の数字が0でないことが保障されている)
Output Format
与えられた数を作ることのできる数の組の中で、最大の数の桁数が最も小さくなる場合の、その桁数を$ 1 $行で出力せよ。
また、出力の末尾には改行を入れること。
Explanation/Hint
### 配点
この問題には部分点が設定されている。
3. データセット$ 1 $は、$ N(1≦N≦10^4) $を満たし、正解すると$ 15 $点が得られる。
4. データセット$ 2 $では追加の制約はなく、正解すると$ 125 $点が得られる。
### Sample Explanation 1
\- $ 52 $ $ 48 $ $ 18 $ $ 5 $ という数の組にしたとき、最大の数(52)の桁数が最小(2桁)になる
### Sample Explanation 2
\- $ 1234 $ $ 567 $ $ 89 $ という数の組にしたとき、最大の数(1234)の桁数が最小(4桁)になる。