问个关于STL的问题
查看原帖
问个关于STL的问题
124676
JimmyFlower楼主2020/9/9 19:20

这个在洛谷是可以A的,但是在本地输出就这样:

1
3
5
//然后光标一直在这闪,按回车也没东西,那个6一直出不来。

求解答,代码如下:

#include<queue>
#include<vector>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ri register int
using namespace std;
int T,num,n,x,y,cnt;
priority_queue<int> q1;
priority_queue<int,vector<int>,greater<int> > q2;
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d ",&x);
		if(q2.empty()) q2.push(x);
		else
		{
			if(x<=q2.top()) q1.push(x);
			else q2.push(x);
			while(q2.size()<q1.size())
            {
            	q2.push(q1.top());
                q1.pop();
            }
            while(q2.size()>q1.size()+1)
            {
                q1.push(q2.top());
                q2.pop();
            }
		}
		if(i&1) printf("%d\n",q2.top());
	}
	return 0;
}
2020/9/9 19:20
加载中...