#include #include #include using namespace std; void solve() { int n; cin >> n; vector a(n); for (int i = 0; i < n; ++i) cin >> a[i]; for (int i = 0; i < n; ++i) if (a[i] >= n) a[i] = 0; int l = 0, r = n + 1; while (r - l > 1) { int mid = (l + r) / 2; vector cnt(mid); for (int i = 0; i < n; ++i) ++cnt[(a[i] >= mid ? 1 : a[i])]; int sum = 1, s0 = 0; for (int i = mid - 1; i > 0; --i) { int tmp = min(sum, cnt[i]); int val = sum - tmp; s0 += cnt[i] - tmp; sum += val; if (sum > n) sum = n + 1; } // cout << mid << ": " << (sum) << ',' << (cnt[0] + s0) << endl; (sum <= cnt[0] + s0 ? l : r) = mid; } cout << l << endl; } int main() { int t; cin >> t; while (t--) solve(); }