记录编号 544375 评测结果 A
题目名称 动态NTZ 最终得分 100
用户昵称 Gravatar瑆の時間~無盡輪迴·林蔭 是否通过 通过
代码语言 C++ 运行时间 0.000 s
提交时间 2019-10-18 09:52:17 内存使用 0.00 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
using namespace std;
priority_queue<int> Q1,Q2;//Q1大根堆在上,Q2小根堆在下
void Clear(priority_queue<int>& q)
{
	priority_queue<int> e;
	swap(q,e);
}
int T,ans[10001],cnt,n,val,tel;
int LINYIN()
{
	freopen("running_ntz.in","r",stdin);
	freopen("running_ntz.out","w",stdout);
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d",&tel);
		cnt=0;
		memset(ans,0,sizeof(ans));
		Clear(Q1);
		Clear(Q2);
		scanf("%d",&n);
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&val);
			if(!Q2.size()||-val<Q2.top())
			{
				Q2.push(-val);
			}
			else
				Q1.push(val);
			while(Q1.size()>Q2.size()+1)
			{
				int kel=Q1.top();
				Q1.pop();
				Q2.push(-kel);
			}
			while(Q2.size()>Q1.size()+1)
			{
				int kel=Q2.top();
				kel=-kel;
				Q2.pop();
				Q1.push(kel);
			}
			if(i%2==1)
			{
				int td;
				if(Q1.size()>Q2.size())
				{
					td=Q1.top();
				} 
				else
					td=-Q2.top();
				ans[++cnt]=td;
			}
		}
		cout<<tel<<' '<<cnt<<endl; 
		for(int i=1;i<=cnt;i++)
		{
			cout<<ans[i]<<' ';
			if((i+10)%10==0)
				cout<<endl;
		}
		cout<<endl;
	}
	return 0;
}
int LWH=LINYIN();
int main()
{
	;
}