hiho #1306 : 股票价格(stl)

来源:互联网 发布:手机淘宝全屏海报尺寸 编辑:程序博客网 时间:2024/04/29 21:57

中文题。


解题思路:

用一个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);        }    }}


原创粉丝点击