蓝桥杯-错误票据

这是我迄今为止做过的最艹淡的一道题了。交对了的我心里岂止有一万头草泥马。

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

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

#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;
}


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值