#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
#include <iterator>
#include <numeric>
#include <string>
#include <cstring>
#include <ctime>
#include <set>
#include <list>
#include <sstream>
#include <iomanip>
#include <map>
#include <stack>
#include <unordered_map>
#include <queue>
#include <deque>
#include <chrono>
#include <sstream>
#include <ostream>
#include <assert.h>
#include <cstdint>
#include <climits>
#define ll long long
#define sync ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define PI 3.14159265358979323846
#define all(c) (c).begin(), (c).end()
#define min_heap_pq priority_queue<int,vector<int>,greater<int>>
using namespace std;
void solve() {
int n;
cin >> n;
vector<int> cnt(2e5 + 5);
vector<int> a(n);
for (int i = 0,j; i < n; i++) {
cin >> j;
cnt[j]++;
a[i] = j;
}
int mx = 2e5 + 5;
int curr_idx = 0;
vector<int> ans;
while (true) {
if (curr_idx >= n) break;
int mex = find(cnt.begin(), cnt.begin() + mx, 0) - cnt.begin();
mx = mex;
ans.push_back(mx);
vector<bool> needed(mx + 1);
int taken = 0;
for (curr_idx; curr_idx < n; curr_idx++) {
cnt[a[curr_idx]]--;
if (a[curr_idx] <= mx and !needed[a[curr_idx]]) {
taken++;
needed[a[curr_idx]] = 1;
}
if (taken == mx) break;
}
curr_idx++;
}
cout << ans.size() << '\n';
for (int i : ans) {
cout << i << ' ';
}
cout << '\n';
}
int main() {
sync;
int t = 1;
cin >> t;
while (t--) {
solve();
}
}
1527A. And Then There Were K | 1689. Partitioning Into Minimum Number Of Deci-Binary Numbers |
318. Maximum Product of Word Lengths | 448. Find All Numbers Disappeared in an Array |
1155. Number of Dice Rolls With Target Sum | 415. Add Strings |
22. Generate Parentheses | 13. Roman to Integer |
2. Add Two Numbers | 515. Find Largest Value in Each Tree Row |
345. Reverse Vowels of a String | 628. Maximum Product of Three Numbers |
1526A - Mean Inequality | 1526B - I Hate 1111 |
1881. Maximum Value after Insertion | 237. Delete Node in a Linked List |
27. Remove Element | 39. Combination Sum |
378. Kth Smallest Element in a Sorted Matrix | 162. Find Peak Element |
1529A - Eshag Loves Big Arrays | 19. Remove Nth Node From End of List |
925. Long Pressed Name | 1051. Height Checker |
695. Max Area of Island | 402. Remove K Digits |
97. Interleaving String | 543. Diameter of Binary Tree |
124. Binary Tree Maximum Path Sum | 1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts |