基本思路:
典型的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; }
蓝桥杯 1458: [蓝桥杯][2013年第四届真题]错误票据 Easy only once *注意输入问题
原文:https://www.cnblogs.com/songlinxuan/p/12283911.html