#include<iostream> #include<set> using namespace std; int main() { int n; cin>>n; for(int i=1;i<=n;i++) { int test; int inme; cin>>test>>inme; multiset<int> s; int temp; cin>>temp; s.insert(temp); int countt=0; countt++; cout<<test<<" "<<(inme+1)/2<<endl; if(inme==1)cout<<temp<<endl; else cout<<temp<<" "; for(int j=1;j<(inme+1)/2;j++) { int t1,t2; cin>>t1>>t2; s.insert(t1); s.insert(t2); multiset<int>::iterator it; it=s.begin(); for(int k=1;k<=j;k++) it++; if(j==(inme+1)/2-1&&i!=n)cout<<(*it)<<endl; else if(j==(inme+1)/2-1&&i==n)cout<<(*it); else { countt++; if(countt==10)cout<<(*it)<<endl,countt=0; else cout<<(*it)<<" "; } } s.clear(); } return 1; } 主要思想 每一次来两个元素执行插入排序!因为我的程序第一个元素拿出来但讨论了,结果在一个元素的地方格式错误了n次!