手工堆44,大佬救我
查看原帖
手工堆44,大佬救我
1382982
jikky楼主2024/7/10 21:50
#include<bits/stdc++.h>
using namespace std;
int a[1000003]={};
int size=0;
int now;
int main(){
	int n;
	cin>>n;
	int q,x;
	for(int i=0;i<n;i++){
		scanf("%d",&q);
		if(q==1){
			scanf("%d",&x);
			a[++size]=x;
			now=size;
			while(now>>1>=1&&a[now>>1]>a[now]){
				swap(a[now>>1],a[now]);
				now>>=1;
			}
		}
		if(q==2){
			printf("%d\n",a[1]);
		}
		if(q==3){
			swap(a[1],a[size]);
			size--;
			now=1;
			while(a[now]>a[now<<1]&&now<<1<=size){
				swap(a[now],a[now<<1]);
				now<<=1;
			}
		}
	} 
	
	return 0;
}
2024/7/10 21:50
加载中...