时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
在遥远的哈基米大陆上,矗立着一扇由哈气之力供能的哈气之门。这扇门维系着整个大陆的平衡,有

种哈气之力(哈、基、咪、南、北、绿、多等)。然而,随着时光流逝,哈气之门的力量逐渐衰弱,只有通过收集所有哈气之力的碎片才能重新激活阵法。
哈基米大陆上直线排布了

座城市,每座城市中蕴藏着一种碎片。这些碎片是重启哈气之门的关键,但每座城市只能提供一种元素的碎片。
作为哈气之塔的守护者,你需要找到所有可能的

,使得这些区间中

碎片。只有这样,才能激活哈气之力,重启哈气之门。
然而,元素碎片的分布并不均匀。有些城市重复蕴藏同一种元素,而有些元素却极为稀有。守护者必须精确计算出满足条件的区间数量,以确保阵法的稳定。
也就是说,给定

座城市和

种元素类型,每座城市对应一种元素类型(用数组

表示)。你需要计算所有满足以下条件的

:
条件:区间包含所有

种元素类型。
输入描述:
第一行输入两个整数
和
(
)。
第二行输入一个长度为
的数组
,其中
表示第
座城市对应的元素类型(
)。
输出描述:
输出一行一个整数,表示满足条件的连续城市区间数量。
示例1
输入
复制
12 4
1 3 1 4 4 2 2 3 1 1 4 1