CF352B Jeff and Periods

题目描述

有一天,Jeff 拿到了一串长度为 $n$ 的整数序列 $a_1, a_2, \ldots, a_n$。他立刻决定要分析这个序列。为此,他需要找出所有满足以下条件的 $x$: - $x$ 在序列 $a$ 中出现过。 - 所有 $x$ 在序列 $a$ 中出现的位置(即所有满足 $a_i=x$ 的 $i$),将这些位置升序排列后,必须构成一个等差数列。 请帮助 Jeff 找出所有满足条件的 $x$ 的值。

输入格式

第一行包含一个整数 $n$,表示序列长度,$1 \leq n \leq 10^{5}$。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$,$1 \leq a_i \leq 10^{5}$,以空格分隔。

输出格式

第一行输出一个整数 $t$,表示满足条件的 $x$ 的个数。 接下来的 $t$ 行,每行输出两个整数 $x$ 和 $p_x$,其中 $x$ 表示当前满足条件的值,$p_x$ 表示该值对应等差数列的公差(如果 $x$ 在序列中只出现一次,则 $p_x=0$)。按 $x$ 从小到大输出这些对。

说明/提示

在第一个测试中,数字 $2$ 只出现了一次,因此 $p_2=0$。 由 ChatGPT 5 翻译