已经吐了!TLE #11
查看原帖
已经吐了!TLE #11
353112
WTR2007楼主2021/7/31 11:14
#include<bits/stdc++.h>
using namespace std;
int r[1000005],n,cnt;
inline int read(){
	int f=1,w=0;
	char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-') f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		w=(w<<1)+(w<<3)+(ch-48);
		ch=getchar();
	}
	return w*f;
}
void head(int p){
	int t;
	while(p*2<=cnt){
		t=p*2;
		if(t+1<=cnt && r[t+1]<r[t]) t++;
		if(r[t]>=r[p]) return ;
		else{
			swap(r[t],r[p]);
			p=t;		
		}
	}
} 
int main(){
	int op; 
	n=read();
	for(int i=1;i<=n;i++){
		op=read();
		if(op==1){
			r[++cnt]=read();
			int k=cnt/2;
			for(int j=k;j>=1;j--) head(j);
		}
		else if(op==2) printf("%d\n",r[1]);
		else{
			r[1]=r[cnt];
			r[cnt]=0;
			cnt--;
			head(1);
		}
	}
	return 0;
}
2021/7/31 11:14
加载中...