CF718E Matvey's Birthday

题目描述

今天是 Matvey 的生日。他总是不知道该要什么礼物,于是朋友们送给了他一个长度为 $n$ 的字符串 $s$。这个字符串只包含前八个英文字母:'a','b',$\ldots$,'h'。 第一个想到的问题是:谁会需要一个字符串呢?Matvey 是个特别的男孩,所以他立刻想出了用这个字符串做些什么。他用它来构建一个无向图,图中的顶点对应字符串中的位置,如果两个不同的位置 $a$ 和 $b$($1 \leq a, b \leq n$)满足下列至少一个条件,则在它们之间连一条边: 1. $a$ 和 $b$ 是相邻的,也就是 $|a-b|=1$。 2. 第 $a$ 和第 $b$ 个位置上的字符相同,即 $s_a=s_b$。 接着,Matvey 想求出这个图的直径。直径是所有顶点对间最短路的最大值。同时,Matvey 还想找出有多少对点之间的距离等于直径。由于他是非常厉害且经验丰富的程序员,他很快就解决了这个问题。你能做到吗?

输入格式

输入的第一行包含一个整数 $n$,表示字符串的长度($2 \leq n \leq 100000$)。 第二行是字符串 $s$。保证 $s$ 只包含前八个英文字母。

输出格式

输出两个整数——图的直径和距离等于直径的点对数量。

说明/提示

考虑第二个样例。 最大距离为 $2$。满足条件的点对有 $(1,4)$,$(2,4)$,$(4,6)$ 和 $(4,7)$。 由 ChatGPT 5 翻译