中文题。
解题思路:
用一个multiset维护价格,然后一个list<pair<int, multiset<int>::iterator> >记录时间和对应的价格信息及即可,见代码
代码:
#include <cstdio>
#include <set>
#include <list>
#include <iostream>
using namespace std;
multiset<int>price;
list<pair<int, multiset<int>::iterator> >tim;
int main()
{
int n, i, j;
cin>>n;
char op[11];
while(n--)
{
int t, pri;
scanf("%s", op);
if(op[0]=='P')
{
scanf("%d%d", &t, &pri);
auto it=price.insert(pri);
tim.emplace_back(make_pair(t, (multiset<int>:: iterator)price.insert(pri)));
}
else if(op[0]=='R')
{
scanf("%d", &t);
while(tim.size()!=0 && (tim.begin())->first<=t)
{
price.erase(tim.begin()->second);
tim.erase(tim.begin());
}
}
else
{
printf("%d %d %d\n", *price.rbegin(), *price.begin(), *tim.rbegin()->second);
}
}
}