hihoCoder--153周 股票价格
来源:互联网 发布:中国省市区json数据库 编辑:程序博客网 时间:2024/04/29 19:55
描述
小Hi最近在分析一支股票的价格走势,他需要一个程序来辅助分析。这个程序会接收3种消息(指令):
价格信息,格式是P timestamp price:表示这支股票在 timestamp 时刻价格是 price。
删除价格指令,格式是R timestamp:随着时间推移,小Hi会积累越来越多的价格数据。一些老旧的数据会变得不重要。这个指定会删除 timestamp 以前(包括 timestamp 时刻)的价格数据。
价格查询指令,格式是Q:小Hi希望程序返回这只股票最高、最低和最近的价格。注意已经被删除的价格不应该被统计。
给定一个包含以上3种信息(指令)的序列,你能否帮助小Hi完成这个程序呢?
输入
第1行包含一个整数 N (1 ≤ N ≤ 500000),表示消息(指令)序列的长度。
第2 - N+1行,每行包含一条消息或指令。
输入保证价格信息是按照 timestamp 升序排列的,并且出现的 timestamp 和价格小于100000000。
输出
对于输入中每一条价格查询指令,输出当时最高、最低和最近的价格。
样例输入
10
P 1 77
P 2 73
P 5 70
P 7 74
Q
R 4
Q
P 8 78
R 5
Q
样例输出
77 70 74
74 70 74
78 74 78
题解
#include <bits/stdc++.h>using namespace std;map<int, int> p;multiset<int> prices;int n;int main() {#ifndef ONLINE_JUDGEfreopen("data.in", "r", stdin);#endif // ONLINE_JUDGE ios::sync_with_stdio(false); cin.tie(0); cin >> n; char op; int a, b; for(int i = 0; i < n; ++i){ cin >> op; if(op == 'P'){ cin >> a >> b; p[a] = b; prices.insert(b); }else if(op == 'R'){ cin >> a; while(!p.empty() && p.begin()->first <= a){ auto itr = prices.find(p.begin()->second); prices.erase(itr); p.erase(p.begin()); } }else{ int mx = *prices.rbegin(), mi = *prices.begin(); int lru = p.rbegin()->second; cout << mx << " " << mi << " " << lru << endl; } } return 0;}
阅读全文
0 0
- hihoCoder--153周 股票价格
- hihocoder 股票价格
- hihocoder 股票价格
- hihocoder #1620 : 股票价格3
- [hihoCoder] #1306 : 股票价格 解题报告
- [hihocoder]#1619“共同富裕” && #1620股票价格3
- 股票价格指数
- 股票价格预测
- hihocoder 第三周
- hihocoder 第八十九周
- hihoCoder 133周题目
- hihocoder 134周题目
- hihocoder 135周
- hihocoder 136周
- hihocoder 139周
- hihocoder 第139周
- hihoCoder 156周 岛屿
- hihoCoder 第177周
- 20170605 广信学院企业项目颁奖 我的项目总结演讲稿
- ACE_Message_Block例子
- (项目)AR电子书系统创新实训中期汇报
- jython安装和使用
- [Hackerrank题目选做] Mathematical Expectation伪题解
- hihoCoder--153周 股票价格
- Python获取本机所有网卡的MAC地址
- 通达OA2017版连接sqlserver2008数据库
- 数据结构实验之查找五:平方之哈希表
- 【Jfinal】You can't update model without Primary Key
- Int与Byte的转换
- 1029. 旧键盘(20)
- FastDFS插入图片
- Kali 工具 中文说明书