Escrito por Leonardo Paes.
Vamos armazenar a frequência de cada número de 0 até 100 no vetor freq. Agora mex(A) seria o menor i para o qual freqi=0. Seja este i=x . mex(B) seria o menor i para o qual freqi≤1. Isso ocorre porque uma contagem de cada número menor que x iria para A, portanto, o elemento que estava presente inicialmente uma vez agora não estaria disponível para B.
Código de exemplo:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <bits/stdc++.h> | |
using namespace std; | |
int main(){ | |
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); | |
int t; | |
cin >> t; | |
while(t--){ | |
int n; | |
cin >> n; | |
vector<int> freq(101, 0); | |
for(int i=0; i<n; i++){ | |
int val; | |
cin >> val; | |
freq[val]++; | |
} | |
int a = 0, b = 0; | |
while(freq[a] > 0) a++; | |
while(freq[b] > 1) b++; | |
cout << a + b << "\n"; | |
} | |
return 0; | |
} |