蓝桥杯 1458: [蓝桥杯][2013年第四届真题]错误票据 Easy only once *注意输入问题
基本思路:
典型的hash散列;
关键点:
输入问题:
这里涉及到了行号输入和EOF输入,需要注意一下;
本题完全可以利用EOF输入,但是示例中有了新的行号输入思想,要注意一下;
利用cin读入数字后,可以利用cin.get()来判断空格和回车问题,进行判断,按个进行判断,从而识别出换行符号;
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<vector>
#include<string>
#include<math.h>
#include<algorithm>
#include<cstring>
using namespace std;
using std::vector;
const int maxn = 100200;
int ar[maxn];
int main(){
fill(ar, ar + maxn, 0);
int n;
cin >> n;
getchar();
int min=maxn;
int max=-1;
for (int i = 0; i < n; i++) {
int a;
//cout << 111 << endl;
while (cin>>a){
if (min > a)
min = a;
if (max < a)
max = a;
ar[a] ++;
char c = cin.get();
if (c == '\n')
break;
}
}
int ansa, ansb;
for (int i = min; i <= max; i++) {
if (ar[i] == 0)
ansa = i;
if (ar[i] == 2)
ansb = i;
}
cout << ansa << " " << ansb;
}

浙公网安备 33010602011771号