前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >蓝桥杯-错误票据

蓝桥杯-错误票据

作者头像
用户1148523
发布2018-01-09 10:29:11
4960
发布2018-01-09 10:29:11
举报
文章被收录于专栏:Fish

先说题意,输入n(n<100),下面有n行,每行有数目不定的数字,然后中间有各种空格。输入完成后排序,然后找出重复的一个数和缺少的一个数(开头结尾的数不会缺少和重复)。

题真的非常非常的简单,只需要输入之后排序就可以了,可能难点在输入上,题意也说了,“请注意行内和行末可能有多余的空格,你的程序需要能处理这些空格。”,是的,我注意了,我调了很久然后都弄出来了,然后交了,莫名时间超限。一共就两组数据啊,第一组非常非常的少,竟然会超限。然后找了几个答案,也没看出来自己到底为啥子不行。直到我看到了一个人写,其实不用管格式,直接输入就可以。然后我试了,是不行的,最后就算你不停的回车也无法输出结果,但是。。。我交了,AC了,而且我也发现了一点,其他的AC代码也是可以通过EOF来结束的,而我的就没有将cin放到while的判断里。大概在检测的时候,最后结束的是EOF。。。所以这题的代码就是酱紫的(附带坑爹注释)

代码语言:javascript
复制
#include<iostream>
#include<algorithm>
#define N 10001
using namespace std;
char num[6];
int main() {
	int n;
	int len=0;
	int a[N];
	cin>>n;
	while(cin>>a[len++]);
	/*这里面的都是艹淡= =
	char c='a';
	cin.get();
	while(n--) {
		while(1) {
			int t_len=0;
			int flag=0;
			c=cin.get();
			while(c!=' ' &&  c!='\n') {
				num[t_len++]=c;
				c=cin.get();
				flag=1;
			}
			if(flag) {
				a[len++]=atoi(num);
				fill(num,num+6,0);
			}
			if(c=='\n') break;
			if(c==' ') continue;
		}
	}*/
	sort(a,a+len);
	for(int i=1; i<len; i++)
		if(a[i]-a[i-1]==2) {
			cout<<a[i]-1<<' ';
			break;
		}
	for(int i=1; i<len; i++)
		if(a[i]-a[i-1]==0) {
			cout<<a[i];
			break;
		}
	return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年03月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档