WA44求调
查看原帖
WA44求调
1097293
zhangyining2357楼主2024/6/2 08:37

前三点AC,后两点AC,其余WA

#include<iostream>
using namespace std;
struct heap{
	int heaparray[1000001];
	int size;
	void push(int k){
		size++;
		heaparray[size]=k;
		int now=size;
		while(now>1&&heaparray[now]<heaparray[now/2]){
			swap(heaparray[now],heaparray[now/2]);
			now/=2;
		}
		return;
	}
	void pop(){
		int i=1;
		heaparray[1]=heaparray[size];
		size--;
		while(i*2<=size){
			int pos=i*2;
			if(heaparray[pos+1]<heaparray[pos]&&pos+1<size)	pos++;
			if(heaparray[i]<=heaparray[pos])	break;
			swap(heaparray[i],heaparray[pos]);
			i=pos;
		}
	}
};
heap h;
int n,t,x;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>t;
		if(t==1){
			cin>>x;
			h.push(x);
		}
		if(t==2){
			if(h.size==0)	cout<<0;
			else cout<<h.heaparray[1]<<endl;
		}
		if(t==3){
			h.pop();
		}
	}
}
2024/6/2 08:37
加载中...