#include <cstdio> #include <iostream> #include <queue> using namespace std; int t, x; int main() { scanf("%d", &t); while (t--) { // å¤§æ ¹å †ï¼Œç»´æŠ¤å‰ä¸€åŠå…ƒç´ (å˜å°å€¼ï¼‰ priority_queue<int, vector<int>, less<int> > a; // å°æ ¹å †ï¼Œç»´æŠ¤åŽä¸€åŠå…ƒç´ (å˜å¤§å€¼ï¼‰ priority_queue<int, vector<int>, greater<int> > b; while (scanf("%d", &x) && x) { // è‹¥ä¸ºæŸ¥è¯¢å¹¶åˆ é™¤æ“ä½œï¼Œè¾“å‡ºå¹¶åˆ é™¤å¤§æ ¹å †å †é¡¶å…ƒç´ // å› ä¸ºè¿™é¢˜è¦æ±‚输出ä¸ä½æ•°ä¸è¾ƒå°è€…ï¼ˆå¶æ•°ä¸ªæ•°å—会å˜åœ¨ä¸¤ä¸ªä¸ä½æ•°å€™é€‰ï¼‰ // 这个和上é¢çš„第k大讲解有ç¨è®¸å‡ºå…¥ï¼Œä½†å¦‚æžœç†è§£äº†ä¸Šé¢çš„,这个ç¨å¾®å˜é€šä¸‹ä¾¿å¯ç†æ¸… if (x == -1) { printf("%d\n", a.top()); a.pop(); } // 若为æ’å…¥æ“ä½œï¼Œæ ¹æ®å¤§æ ¹å †å †é¡¶çš„å…ƒç´ å€¼ï¼Œé€‰æ‹©åˆé€‚çš„å †è¿›è¡Œæ’å…¥ else { if (a.empty() || x <= a.top()) a.push(x); else b.push(x); } // å¯¹å †é¡¶å †è¿›è¡Œè°ƒæ•´ if (a.size() > (a.size() + b.size() + 1) / 2) { b.push(a.top()); a.pop(); } else if (a.size() < (a.size() + b.size() + 1) / 2) { a.push(b.top()); b.pop(); } } } return 0; }