闲着无聊,练了练这个模板。
#include<iostream> #include<cstdio> using namespace std; int a[1000010],cnt=0,n; void add(int num){ a[++cnt]=num;int x=cnt,y; while(x>1){ y=x>>1; if(a[y]<=a[x])break; swap(a[x],a[y]);x=y; } } void del(){ int x=1,y;a[1]=a[cnt--]; while(x<=(cnt>>1)){ y=x<<1; if(y<cnt&&a[y+1]<a[y])y++; if(a[y]>=a[x])return; swap(a[x],a[y]);x=y; } } int main() { scanf("%d",&n); for(int i=1;i<=n;i++){ int k,x;scanf("%d",&k); if(k==1){scanf("%d",&x);add(x);} else if(k==2)printf("%d\n",a[1]); else del(); } return 0; }
可是,没想到,上午刚刚练的模板,下午就用到了
本文由Yzyet编写,网址为www.cnblogs.com/Yzyet。非Yzyet同意,禁止转载,侵权者必究。