Sample Input
8 3
I 1
I 2
I 3
Q
I 5
Q
I 4
Q
Sample Output
1
2
3
#include <iostream>
#include <cstdlib>
#include <stdio.h>
using namespace std;
int small[1000005];
int la;
void adda(int x)
{
la++;
int chi=la,par=la/2;
while(chi>1&&x<small[par])
{
small[chi]=small[par];
chi=par;par=chi/2;
}
small[chi]=x;
}
void deleta()
{
int chi=2,par=1,x=small[la];
la--;
while(chi<=la)
{
if(chi+1<=la&&small[chi+1]<small[chi])
chi++;
if(chi<=la&&small[chi]<x)
{ small[par]=small[chi];
par=chi;chi=par*2;
}
else break;
}
small[par]=x;
}
int main(int argc, char** argv) {
int n,k;
int x;char c[2];
while(scanf("%d%d",&n,&k)!=-1)
{
la=0;
for(int i=1;i<=n;i++)
{
scanf("%s",c);
if(c[0]=='Q') printf("%d\n",small[1]);
else
{
scanf("%d",&x);
if(i<=k) adda(x);
else if(x>small[1])
{
deleta();
adda(x);
}
}
}
}
return 0;
}