Codeforces Round #204 (Div. 2) B
来源:互联网 发布:js 短路 编辑:程序博客网 时间:2024/05/18 13:44
B. Jeff and Periods
time limit per test1 second
memory limit per test256 megabytes
inputstandard input
outputstandard output
One day Jeff got hold of an integer sequence a1, a2, …, an of length n. The boy immediately decided to analyze the sequence. For that, he needs to find all values of x, for which these conditions hold:
x occurs in sequence a.
Consider all positions of numbers x in the sequence a (such i, that ai = x). These numbers, sorted in the increasing order, must form an arithmetic progression.
Help Jeff, find all x that meet the problem conditions.
Input
The first line contains integer n (1 ≤ n ≤ 105). The next line contains integers a1, a2, …, an (1 ≤ ai ≤ 105). The numbers are separated by spaces.
Output
In the first line print integer t — the number of valid x. On each of the next t lines print two integers x and px, where x is current suitable value, px is the common difference between numbers in the progression (if x occurs exactly once in the sequence, px must equal 0). Print the pairs in the order of increasing x.
Examples
input
1
2
output
1
2 0
input
8
1 2 1 3 1 2 1 5
output
4
1 2
2 4
3 0
5 0
Note
In the first test 2 occurs exactly once in the sequence, ergo p2 = 0.
#include <stdio.h>#include <set>#include <iostream>#include <algorithm>using namespace std;const int N=123456;int foo[N];int zoo[N];int koo[N];int bj[N];int hoo[N];pair<int,int> p[N];int main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&foo[i]); } for(int i=0;i<n;i++){ if(!bj[foo[i]]){ bj[foo[i]]=1; zoo[foo[i]]=i; } else{ int k=i-zoo[foo[i]]; zoo[foo[i]]=i; if(koo[foo[i]]==0){ koo[foo[i]]=k; } else{ if(k!=koo[foo[i]]){ hoo[foo[i]]=1; } else{ koo[foo[i]]=k; } } } } sort(foo,foo+n); int h=0; for(int i=0;i<n;i++){ if(!hoo[foo[i]]){ p[h++]={foo[i],koo[foo[i]]}; hoo[foo[i]]=1; } } printf("%d\n",h); for(int i=0;i<h;i++){ printf("%d %d\n",p[i].first,p[i].second); } return 0;}
- Codeforces Round #204 (Div. 2) B
- Codeforces Round #204 (Div. 2) B. Jeff and Periods
- Codeforces Round #204 (Div. 2) B - Jeff and Periods
- Codeforces Round #131 (Div. 2) A B
- Codeforces Round #134 (Div. 2)B. Airport
- Codeforces Round #170 (Div. 2) problem B
- Codeforces Round #173 (Div. 2) Problem B
- Codeforces Round #181 (Div. 2) B. Coach
- Codeforces Round #185 (Div. 2)--A,B
- Codeforces Round #171 (Div. 2) B
- Codeforces Round #169 (Div. 2) B题
- Codeforces Round #188 (Div. 2) B题
- Codeforces Round #192 (Div. 2) B
- Codeforces Round #203 (Div. 2) B. Resort
- Codeforces Round #206 (Div. 2) - b
- Codeforces Round #202 (Div. 2)B-贪心
- Codeforces Round #203 (Div. 2)B
- Codeforces Round #203(Div. 2)B. Resort
- 二叉树
- UGUI播放UI特效以及解决特效与UI的层级问题
- 并查集和prime和kruskal
- ASP .Net MVC使用Knockout.js
- Json数据处理:使用GSON处理数据的方法
- Codeforces Round #204 (Div. 2) B
- Java集合类之Collection接口
- Unity3D Asset文件导出3DMax 可编辑格式
- 在ssh中避免老掉线以及私钥公钥的问题
- 八皇后c++版本
- 使用ArrayAdapter结合LisiView自定义一个列表
- P1396 营救
- C++-使用模板解决问题
- Head First设计模式学习笔记-------(7)适配器模式