別解
By
tomo8
答えはたかだか 100001( -1 でないとき)なので、答えの候補をすべて set に入れ、 に含まれる数をすべて取り除き、その後 set に入っている最小値を出力すればよいです。
std::set では、通常データは値の昇順で保管されているので、先頭の要素を出力すればよいです(イテレータを使うと書きやすいです)。
解答 (C++)
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; vector<int> v(n); for (int &k : v) cin >> k; set<int> e; for (int i = 0; i <= 300000; i++) { e.insert(i); } for (int k : v) { if (e.count(k)) e.erase(k); } cout << *e.begin() << endl; }