#PX0011. 【模板】双指针

【模板】双指针

题目描述

对于给定的长度为 nn 的数组 {a1,a2,,an}\{a_1,a_2,\dots,a_n\} ,找出最长的区间,满足区间中元素两两不同。

如果有多个这样的区间,依次输出它们。

输入格式

第一行输入一个整数 n(1n2×105)n \left( 1 \leq n \leq 2 \times 10^5\right) 代表数组中的元素数量。

第二行输入 nn 个整数 a1,a2,,an(0ain)a_1,a_2,\dots,a_n \left( 0 \leq a_i \leq n \right) 代表初始数组。

输出格式

第一行输出一个整数 m(1mn)m \left( 1 \leq m \leq n \right) 代表满足条件的区间数量。

此后 mm 行,每行输出两个整数 l,r(1lrn)l,r \left( 1 \leq l \leq r \leq n \right) 代表满足条件的区间。本题没有 SPJ\sf SPJ ,请按照 ll 递增的顺序输出。

输入样例

6
1 1 4 5 1 4

输出样例

3
2 4
3 5
4 6