一定要记得关流! AC代码+注释如下:
#include<bits/stdc++.h>
using namespace std;
//维持一个大根堆,一个小根堆,其中大根堆的顶要小于等于小根堆的顶
int main(){
ios::sync_with_stdio(false);//关流
cin.tie(0);cout.tie(0);
int T;cin>>T;//T组样例
while(T--){
priority_queue<int>qup; //默认大根堆
priority_queue<int,vector<int>,greater<int>>qdown;//小根堆
int n,m;cin>>n>>m;//输入
cout<<n<<' '<<(m+1)/2<<'\n';//输出格式
for(int i=1;i<=m;i++){
int x;cin>>x;
if(i%2){//如果为奇数入堆并且维护qdown的最小值大于qup的最大值
qup.push(x);
while(!qdown.empty()&&qdown.top()<qup.top()){
int t1=qdown.top(),t2=qup.top();
qdown.pop();qup.pop();
qdown.push(t2);qup.push(t1);
}
cout<<qup.top()<<' ';
if((i+1)/2%10==0)cout<<'\n';//注意格式
}
else qdown.push(x);
}
if((m+1)/2%10)cout<<'\n';//注意格式
}
}