#include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int T; cin >> T; while(T--){ int N; cin >> N; if(N == 1){int x; cin >> x; cout << max(1,x) << "\n"; continue;} //おお vector C(N+1); for(int i=0; i> a; if(a > N) C.at(N)++; else C.at(a)++; } int low = 0,high = N+1; while(high-low > 1){ int mid = (high+low)/2; int free = 0,need = 1; for(int i=mid; i<=N; i++) free += C.at(i); bool ok = true; for(int i=mid; i--;){ if(i > 1){ if(need <= C.at(i)) free += C.at(i)-need; else need += need-C.at(i); if(need > 1001001){ok = false; break;} } else if(i == 1){ if(need <= C.at(i)) free += C.at(i)-need; else free -= need-C.at(i); } else{ if(need <= C.at(i)) free += C.at(i)-need; else free -= need-C.at(i); if(free < 0) ok = false; } } if(ok) low = mid; else high = mid; } cout << low << "\n"; } }