wa,求助
  • 板块灌水区
  • 楼主jq_ll19802
  • 当前回复1
  • 已保存回复2
  • 发布时间2023/11/14 20:00
  • 上次更新2023/11/14 21:23:46
查看原帖
wa,求助
1072786
jq_ll19802楼主2023/11/14 20:00

p3378 https://www.luogu.com.cn/problem/P3378

#include<bits/stdc++.h>

using namespace std;

#define sc(x) scanf("%d",&x)

int n,a,b,d[4000005],id,y;

void ru()

{

	d[id]=b;
	y=id;
	while(d[y]<d[y/2])
	{
		swap(d[y],d[y/2]);
		y/=2;
	}
}

void chu()

{

	y=1;
	swap(d[y],d[id]);
	d[id]=0;
	while(d[y*2]!=0)
	{
		if(d[y*2]<d[y*2+1]&&d[y]>d[y*2])
		{
			swap(d[y],d[y*2]);
			y*=2;
		}	
		else
		if(d[y]>d[y*2+1]&&d[y*2]>d[y*2+1])
		{
			swap(d[y],d[y*2+1]);
			y*=2+1;
		}
		else
		break;
	}
	
	id--;
}

int main()
{

//	freopen("a.in","r",stdin);

//	freopen("a.out","w",stdout)

	sc(n);
	d[0]=-1;
	for(int i=0;i<n;i++)
	{
		sc(a);
		if(a==1)
		{
			sc(b);
			id++;
			ru(); 
		}
		if(a==2)
		{
			printf("%d\n",d[1]);
		}
		if(a==3)
		{
			chu();
		}
	}
	return 0;
}
2023/11/14 20:00
加载中...