1≤ N ≤ 3·105
现在有 N 个数,你的任务是将这 N 个数尽可能切割成多段。每一段必须包括两个相同的数。
数据输入量比较大,建议使用 scanf 和 printf。
输入为单组测试数据。数据第一行为 N (1 ≤N ≤ 3×105) 。
数据的第二行包括 N 个数 ai (1≤ai ≤ 109) 。
输出的第一行为尽可能切割的最大段数 K。
接下来 K 行,每行为两个整数 lj, rj (1 ≤ lj ≤rj ≤ n) ,表示切割的区间范围。
如果存在多个合法的切割方法,输出任意一个即可。
如果不能切割成合法的情况,输出 -1。
现在有 $N$ 个数,你的任务是将这 $N$ 个数尽可能切割成多段。每一段必须包括两个相同的数。
数据输入量比较大,建议使用 `scanf` 和 `printf`。
输入为单组测试数据。数据第一行为 $N$ ($1 \le N$ $\le$ $3 \times 10^5$) 。
数据的第二行包括 $N$ 个数 $a_i$ ($1\le a_i \le 10^9$) 。
输出的第一行为尽可能切割的最大段数 $K$。
接下来 $K$ 行,每行为两个整数 $l_j$, $r_j$ ($1 \le l_j \le r_j \le n$) ,表示切割的区间范围。
如果存在多个合法的切割方法,输出任意一个即可。
如果不能切割成合法的情况,输出 `-1`。