bzoj#P4215. 卓哥哥与黄学长去MIT蹭饭

卓哥哥与黄学长去MIT蹭饭

题目描述

卓哥哥与黄学长手牵着手去 MIT 蹭饭。MIT 的食堂高端的不行,他们的菜单由一串长度为 nn 的数字 (09)(0\sim 9) 串组成,其中的每一个子串都是一道菜名。

卓哥哥和黄学长都有些特殊的嗜好:

  1. 他们每个人点的若干道菜在菜单中必须是一段连续且不重叠的字串(一个人点的所有菜在菜单中也必须是一段连续的子串);
  2. 他们点的所有(两个人的)菜的菜名的首数字必须相同;
  3. 他们点的任何菜的菜名中不能包含该菜名的首数字(比如菜名 09209 是不合法的);
  4. 卓哥哥点的菜的菜名长度总和黄学长相同,点的菜的数量也相同;
  5. 卓哥哥与黄学长点菜的顺序为菜单上的顺序;
  6. 卓哥哥点的第 kk 道菜的菜名的长度与黄学长点的第 kk 道菜的菜名的长度必须相同;
  7. 卓哥哥点的第 kk 道菜的菜名与黄学长点的第 kk 道菜的菜名除了菜名的首数字外必须完全不同(比如菜名 09238 与菜名 02983 是合法的,但菜名 09237 与菜名 03298 是不合法的);
  8. 最后,卓哥哥与黄学长点的菜不能完全相同。

一个合法的方案为:

菜单为:123142125

卓哥哥点了两道菜,第一道菜为 123,第二道菜为 142

黄学长点了两道菜,第一道菜为 142,第二道菜为 125

卓哥哥与黄学长想让他们点的菜的菜名长度总和最长(如上方案菜名长度总和为 66 同时也是最长的方案)。

输入格式

第一行为一个整数 nn,表示菜单的长度为 nn

第二行为一个长度为 nn 的数字串,表示菜单。

输出格式

输出最长的菜名长度总和。

样例

9
123142125
6

数据规模与约定

对于 100%100\% 的数据:n105n \le 10^5,菜名由 090\sim 9 的数字组成。

数据保证随机。

(修者注:n=105n=10^5 的数据中,菜名仅由 020\sim 2 的数字组成,其余数据均满足 n5×103n\le 5\times 10^3