AtCoder Beginner Contest 245 B - Mex
問題の要約
長さNの整数からなる数列A=(A1,...,AN)が与えられる。
A1,...,ANに含まれない最小の非負整数を求めよ。
制約
1<=N<=2000
0<=Ai<=2000
入力
N
A1 ... AN
考え方
1,vector<bool>でAiが含まれるかどうかを管理する。
2,vector<bool>を0から確認していけば最小の非負整数を求めることができる。
実際のプログラム
#include<iostream>
#include<vector>
using namespace std;
int main(){
int N;
cin >> N;
vector<bool> A(2000+1,false);
for(int i = 0; i < N; i++){
int Ai;
cin >> Ai;
A[Ai] = true;
}
int ans = 0;
for(int i = 0; i < 2000+1; i++){
if(!A[i]){
ans = i;
break;
}
}
cout << ans << endl;
return 0;
}