/*
* c.cpp
*
* Created on: 2013-10-7
* Author: wangzhu
*/ #include<cstdio>
#include<iostream>
using namespace std;
#define NMAX 100010
struct Node {
//index:表示两个数直接的距离(-1:表示未开始,0:表示开始:> 0:表示有了距离
//val:记录最后一次的位置
//flag:不符合条件 (0:表示符合条件,1:表示不符合条件)
int index, val, flag;
} node[NMAX];
int main() {
freopen("data.in", "r", stdin);
int n,val,k;
while(~scanf("%d",&n)) {
for(int i = ;i < NMAX;i++) {
node[i].index = -;
node[i].val = ;
node[i].flag = ;
} for(int i = ;i <= n;i++) {
scanf("%d",&val);
if(node[val].index > ) {
if(node[val].index != i - node[val].val) {
node[val].flag = ;
}
} else {
if(node[val].val > ) {
node[val].index = i - node[val].val;
} else {
node[val].index = ;
}
}
node[val].val = i;
}
k = ;
for(int i = ;i < NMAX;i++) {
if(node[i].index != - && node[i].flag == ) {
k++;
}
}
printf("%d\n",k);
for(int i = ;i < NMAX;i++) {
if(node[i].index != - && node[i].flag == ) {
printf("%d %d\n",i,node[i].index);
}
}
}
return ;
}

超时的方法,如下:

/*
* c.cpp
*
* Created on: 2013-10-7
* Author: wangzhu
*/ #include<cstdio>
#include<iostream>
using namespace std;
#define NMAX 100010
struct Node {
int index, val;
} node[NMAX];
int main() {
freopen("data.in", "r", stdin);
int n,val,k,tempIndex;
bool flag;
Node tempNode;
while(~scanf("%d",&n)) {
for(int i = ;i < n;i++) {
scanf("%d",&val);
node[i].index = i;
node[i].val = val;
}
for(int i = ;i < n;i++) {
for(int j = ;j < n - i -;j++) {
if(node[j].val > node[j + ].val) {
tempNode = node[j];
node[j] = node[j+];
node[j+] = tempNode;
}
}
}
k = ;
flag = true;
for(int i = ;i < n;) {
tempNode = node[i];
tempIndex = ;
flag = true;
while(i < n && tempNode.val == node[i].val) {
if(tempIndex == ) {
tempIndex = node[i].index - tempNode.index;
} else {
if(tempIndex != node[i].index -tempNode.index) {
flag = false;
}
}
tempNode = node[i];
i++;
}
if(flag) {
node[k].val = tempNode.val;
node[k].index = tempIndex;
k++;
}
}
printf("%d\n",k);
for(int i = ;i <k;i++) {
printf("%d %d\n",node[i].val,node[i].index);
}
}
return ;
}

code forces Jeff and Periods的更多相关文章

  1. Codeforces Round #204 (Div. 2)->B. Jeff and Periods

    B. Jeff and Periods time limit per test 1 second memory limit per test 256 megabytes input standard ...

  2. Codeforces 352B - Jeff and Periods

    352B - Jeff and Periods 思路:水题,考验实现(implementation)能力,来一波vector[允悲]. 代码: #include<bits/stdc++.h> ...

  3. 思维题--code forces round# 551 div.2

    思维题--code forces round# 551 div.2 题目 D. Serval and Rooted Tree time limit per test 2 seconds memory ...

  4. B. Jeff and Periods(cf)

    B. Jeff and Periods time limit per test 1 second memory limit per test 256 megabytes input standard ...

  5. Code Forces 796C Bank Hacking(贪心)

    Code Forces 796C Bank Hacking 题目大意 给一棵树,有\(n\)个点,\(n-1\)条边,现在让你决策出一个点作为起点,去掉这个点,然后这个点连接的所有点权值+=1,然后再 ...

  6. Code Forces 833 A The Meaningless Game(思维,数学)

    Code Forces 833 A The Meaningless Game 题目大意 有两个人玩游戏,每轮给出一个自然数k,赢得人乘k^2,输得人乘k,给出最后两个人的分数,问两个人能否达到这个分数 ...

  7. Code Forces 543A Writing Code

    题目描述 Programmers working on a large project have just received a task to write exactly mm lines of c ...

  8. Code Forces 21 A(模拟)

    A. Jabber ID time limit per test 0.5 second memory limit per test 256 megabytes input standard input ...

  9. CF352B Jeff and Periods 模拟

    One day Jeff got hold of an integer sequence a1, a2, ..., an of length n. The boy immediately decide ...

随机推荐

  1. 页面javascript 和jquery 的一些用法

    confirm:提交之前的提示验证 if(confirm("确认是否提交?")){ alert("确认提交..."); } input按钮的禁用: $(&quo ...

  2. croppic 图片裁剪

    #region 3.1.3 保存裁剪后的图片方法 +ContentResult TemplateCropImg() /// <summary> /// 保存裁剪后的图片方法 /// < ...

  3. 快速登录IRC网络聊天室

    随便起个NickName,进行人机验证,然后点击Connect进去就可以咯.

  4. 12天学好C语言——记录我的C语言学习之路(Day 3)

    12天学好C语言--记录我的C语言学习之路 Day 3: 不知不觉到了第三天的学习,我们前两天学习的东西很杂乱,各个方面都有学习.我觉得这不是不系统,也不是学的不扎实,这种学习对于初学者而言我认为是很 ...

  5. Java validator整理

    Java validator整理 因为想对方法的入参和出参作简单的非空或者非空字符做校验,所以找了下相关的@NotNull注解 类 | 说明 --- | --- javax.validation.co ...

  6. 结构型模式——Bridge(未完成)

    1.意图 将抽象部分与它的实现部分分离,使它们都可以独立地变化.

  7. 【HeadFirst设计模式】12.复合模式

    定义: 复合模式结合两个或以上的模式,组成一个解决方案,解决一再发生的一般性问题. 要点: MVC模式是复合模式,结合了观察者模式.策略模式和组合模式. 模型使用了观察者模式,以便观察者更新,同时保存 ...

  8. html5 meta头部设置

    <meta name="viewport" content="height=[pixel_value | device-height], width=[pixel_ ...

  9. centos 关闭触摸板,触摸板点击

    yum install xorg-x11-apps xinput –list 由图可以看出俺的本本触摸板ID为14,于是可以通过以下命令开启与关闭它: 禁止touchpad:xinput set-in ...

  10. __sync_fetch_and_add

    最近在公司离职的前辈写的代码哪里看到了__sync_fetch_and_add这个东东.比较好奇.找些资料学习学习 http://www.lxway.com/4091061956.htm http:/ ...