第1行为1个整数N,表示需要处理的事件数目。

接下来的M行,每行描述一个事件,且事件类型由该行的第一个字符表示,如果为'A',表示小Ho将一粒糖果放进了盒子,且接下来为一个整数W,表示这颗糖果的重量;如果为'T',表示小Ho需要知道当前盒子中最重的糖果的重量是多少,在知道这个值之后,小Ho会将这颗糖果从盒子中取出并吃掉。

对于100%的数据,满足1<=N<=10^5, 1<=w<=10^5。<>

对于100%的数据,满足没有2颗糖果的重量是相同的,最开始的时候小Ho的糖果盒子是空的,且每次小Ho想要取出一颗糖果的时候盒子里一定至少有一颗糖果。

输出

在一组测试数据中:

对于每个类型为'T'的时间,输出1个整数W_MAX,表示在这一时刻,盒子中最重的糖果的重量。

样例输入

5
A 77751
A 1329
A 26239
A 80317
T

样例输出

80317
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=;
struct Node
{
int ch[],cnt,val;
Node()
{
cnt=val=;
ch[]=ch[]=;
}
};
struct Tree
{
Node S[maxn];
int root,cnt;
Tree()
{
root=cnt=;
S[].val=;
S[].cnt=;
S[].ch[]=S[].ch[]=;
}
void insert(int &now,int val)
{
if(S[now].val==val){
S[now].cnt++;
return ;
}
if(!now){
now=++cnt;
S[now].val=val;
S[now].cnt=;
return ;
}
insert(S[now].ch[val>S[now].val],val);
}
int query(){
int now=root,fa=root;
while(S[now].ch[]) {
fa=now;
now=S[now].ch[];
}
S[now].cnt--;
if(S[now].cnt==){
if(now!=root&&S[now].ch[]){
S[fa].ch[]=S[now].ch[];
S[now].ch[]=;
S[now].ch[]=;
}
else if(now==root){
root=S[root].ch[];
}
else S[fa].ch[]=;
}
return S[now].val;
}
};
Tree tree;
int main()
{
int n,m;
char opt[];
scanf("%d",&n);
while(n--){
scanf("%s",opt);
if(opt[]=='A'){
scanf("%d",&m);
tree.insert(tree.root,m);
}
else printf("%d\n",tree.query());
}
}

最新文章

  1. CSS 中关于background 属性功能
  2. iOS开发之功能模块--根据需求开发横向的子弹盒View
  3. React.js入门笔记(续):用React的方式来思考
  4. vert.x学习(五),用StaticHandler来处理静态文件
  5. C++使用继承时子对象的内存布局
  6. 如何提升我的HTML&amp;CSS技术,编写有结构的代码
  7. XSS初探
  8. SpringMVC核心——映射问题
  9. iOS开发者必备的10款工具
  10. POJ 4047 Garden 线段树 区间更新
  11. mac 目录详解
  12. uva 1151 - Buy or Build poj 2784 Buy or Build(最小生成树)
  13. Oracle 11g 客户端的安装和配置。
  14. 测试MarsEdit
  15. macOS下python3通过scrapy框架重新生成不得姐网站视频采集过程日志
  16. Swift 给UITableView 写extension 时 报错 does not conform to protocol &#39;UITableViewDataSource&#39;
  17. OpenCV-Python入门教程5-阈值分割
  18. cookie和session必须了解的东西
  19. GAN初步——本质上就是在做优化,对于生成器传给辨别器的生成图片,生成器希望辨别器打上标签 1,体现在loss上!
  20. [Algorithm] Reservoir Sampling

热门文章

  1. 【转】Git介绍
  2. PAT 天梯赛 L1-027. 出租 【模拟】
  3. SPOJ - HORRIBLE 【线段树】
  4. redis 第二篇 系统命令简介 上
  5. linux+java+webdriver chrome handless无界面启动
  6. JMeter学习(八)JDBC Request
  7. springmvc文件上传的基本描述
  8. 【算法】fhqtreap初探
  9. 泛型学习第二天——C#中的List&lt;string&gt;泛型类示例
  10. UVA 10909 Lucky Number(树状数组+二分+YY)