// OBersevasi 1 => makin besar nilai h, makin banyak air yang bisa diisi
// Observasi 2 => makin kecil nilai h, makin kecil jumlah air yang bisa diisi
// kita mau maksimalin jumlah air atau x unit air
// cari h maksimal yang memenuhi
// Kita bisa pakai algoritma searching
// Tepatnya pakai Binary Search
#include <iostream>
using namespace std;
long long t, n, x, a[200003];
bool cek(long long h) {
long long sum = 0;
for(int i =0;i < n;i++) {
if(a[i] > h) continue;
sum += (h - a[i]);
}
if(sum <= x) return true;
else return false;
}
void solve () {
cin >> n;
for (int i = 0;i < n;i++) {
cin >> a[i];
}
long long l = 0;
long long r = 2000000000;
long long ans = 0;
while(l <= r){
long long mid = (l + r)/2;
// jadi kita cek misalkan si mid jadi h
if(cek(mid)){
l = mid + 1;
ans = mid;
} else {
r = mid - 1;
}
}
cout << ans << endl;
}
int main() {
// your code goes here
cin >> t;
while(t--){
solve();
}
}
Ly8gT0JlcnNldmFzaSAxID0+IG1ha2luIGJlc2FyIG5pbGFpIGgsIG1ha2luIGJhbnlhayBhaXIgeWFuZyBiaXNhIGRpaXNpCi8vIE9ic2VydmFzaSAyID0+IG1ha2luIGtlY2lsIG5pbGFpIGgsIG1ha2luIGtlY2lsIGp1bWxhaCBhaXIgeWFuZyBiaXNhIGRpaXNpCgovLyBraXRhIG1hdSBtYWtzaW1hbGluIGp1bWxhaCBhaXIgYXRhdSB4IHVuaXQgYWlyCi8vIGNhcmkgaCBtYWtzaW1hbCB5YW5nIG1lbWVudWhpCgovLyBLaXRhIGJpc2EgcGFrYWkgYWxnb3JpdG1hIHNlYXJjaGluZwovLyBUZXBhdG55YSBwYWthaSBCaW5hcnkgU2VhcmNoCgoKI2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbG9uZyBsb25nIHQsIG4sIHgsIGFbMjAwMDAzXTsKCmJvb2wgY2VrKGxvbmcgbG9uZyBoKSB7Cglsb25nIGxvbmcgc3VtID0gMDsKCWZvcihpbnQgaSA9MDtpIDwgbjtpKyspIHsKCQlpZihhW2ldID4gaCkgY29udGludWU7CgkJc3VtICs9IChoIC0gYVtpXSk7Cgl9CglpZihzdW0gPD0geCkgcmV0dXJuIHRydWU7CgllbHNlIHJldHVybiBmYWxzZTsKfQoKdm9pZCBzb2x2ZSAoKSB7CgljaW4gPj4gbjsKCWZvciAoaW50IGkgPSAwO2kgPCBuO2krKykgewoJCWNpbiA+PiBhW2ldOwoJfQoJbG9uZyBsb25nIGwgPSAwOwoJbG9uZyBsb25nIHIgPSAyMDAwMDAwMDAwOwoJbG9uZyBsb25nIGFucyA9IDA7Cgl3aGlsZShsIDw9IHIpewogICAgICAgIGxvbmcgbG9uZyBtaWQgPSAobCArIHIpLzI7CiAgICAgICAgLy8gamFkaSBraXRhIGNlayBtaXNhbGthbiBzaSBtaWQgamFkaSBoCiAgICAgICAgaWYoY2VrKG1pZCkpewogICAgICAgICAgICBsID0gbWlkICsgMTsKICAgICAgICAgICAgYW5zID0gbWlkOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHIgPSBtaWQgLSAxOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgYW5zIDw8IGVuZGw7Cn0KCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJY2luID4+IHQ7CiAgICB3aGlsZSh0LS0pewogICAgICAgIHNvbHZlKCk7CiAgICB9Cn0=