アイデア:
setを使用して、0より大きい正の数を保存してから、欠落している最小の正の数を取得します。
1144行方不明の数(20ポイント)
N個の整数が与えられると、与えられたリストにない最小の正の整数を見つけることになっています。
入力仕様:
各入力ファイルには、1つのテストケースが含まれています。いずれの場合も、最初の行は正の整数N(≤105)を示します。次に、スペースで区切られたN個の整数が次の行に表示されます。すべての数値はintの範囲内にあり ます。
出力仕様:
入力リストから欠落している最小の正の整数を1行に出力します。
サンプル入力:
10
5 -25 9 6 1 3 4 2 5 17
サンプル出力:
7
例:
#include<iostream>
#include<set>
using namespace std;
int main()
{
int N;
cin >> N;
set<int> s;
for(int i = 0; i < N; i++) {
int x;
cin >> x;
if(x > 0) s.insert(x);
}
int count = 1;
if(s.size() > 0)
for(auto x : s) {
if(x != count) break;
count++;
}
cout << count;
}