Being unique is so important to people on Mars that even their lottery is designed in a unique way. The rule of winning is simple: one bets on a number chosen from [1, 104]. The first one who bets on a unique number wins. For example, if there are 7 people betting on 5 31 5 88 67 88 17, then the second one who bets on 31 wins.
Each input file contains one test case. Each case contains a line which begins with a positive integer N (<=105) and then followed by N bets. The numbers are separated by a space.
For each test case, print the winning number in a line. If there is no winner, print “None” instead.
7 5 31 5 88 67 88 17
31
5 888 666 666 888 888
None
所有数中第一个只出现一次的数。
#include <bits/stdc++.h> using namespace std; const int maxn = 100010; map<int, pair<int, int>> mp; int n; int a[maxn]; int main(){ #ifndef ONLINE_JUDGE freopen("data.in", "r", stdin); #endif // ONLINE_JUDGE cin >> n; for(int i = 0; i < n; ++i){ cin >> a[i]; int cnt = mp.count(a[i]); if(!cnt) mp[a[i]] = make_pair(1, i); else mp[a[i]].first++; } int pos = maxn; for(auto it = mp.begin(); it != mp.end(); ++it){ // cout << it->first << " (" << it->second.first << " " << it->second.second << ")" << endl; if(it->second.first == 1){ pos = min(pos, it->second.second); } } if(pos == maxn) cout << "None" << endl; else cout << a[pos] << endl; return 0; }