#include #include #include using namespace std; int count_floors(const vector& red, const vector& blue, bool startRed) { int cnt = 0, ri = 0, bi = 0; int cur; if (startRed) { if (red.empty()) return 0; cur = red[ri++]; cnt = 1; } else { if (blue.empty()) return 0; cur = blue[bi++]; cnt = 1; } while (true) { if (startRed) { while (bi < (int)blue.size() && blue[bi] >= cur) bi++; if (bi >= (int)blue.size()) break; cur = blue[bi++]; } else { while (ri < (int)red.size() && red[ri] >= cur) ri++; if (ri >= (int)red.size()) break; cur = red[ri++]; } cnt++; startRed = !startRed; } return cnt; } int main() { int p; cin >> p; while (p--) { int n; cin >> n; vector red, blue; for (int i = 0; i < n; i++) { int x; cin >> x; if (x < 0) red.push_back(-x); else blue.push_back(x); } sort(red.rbegin(), red.rend()); sort(blue.rbegin(), blue.rend()); cout << max(count_floors(red, blue, true), count_floors(red, blue, false)) << "\n"; } return 0; }