Official
B - Mex Editorial by sugarrr
\(0,1,\ldots,N\) に整数は \(N+1\) 個あるので、答えの上限は \(N\) であることがわかります。
よって、\(ans=0,1,2,\ldots,N\) について
\(A\) に \(ans\) は含まれるか?
という問題を順番に解いていき、最初に含まれない値が見つかった時、その値を答えとすれば良いです。
計算量は \(O(N^2)\) です。
なお、bool 配列を用意するなどして \(O(N)\) で解くこともできます。
\(O(N^2)\) の実装例
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
signed main(){
ll n;cin>>n;
vector<ll>a(n);
for(ll i=0;i<=n-1;i++)cin>>a[i];
for(ll ans=0;ans<=n;ans++){
bool ok=true;
for(ll x:a){
if(x==ans)ok=false;
}
if(ok){
cout<<ans<<endl;
return 0;
}
}
return 0;
}
posted:
last update: