EOJ 2981 零食

本文介绍了一个简单的零食管理程序,该程序能够记录购买的零食价格,并在需要时快速找到并分配最低价格的零食。通过使用C++的优先队列实现,确保了高效地处理大量零食的价格信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目简介


康夫的好朋友机器猫是个很喜欢零食的人,经常会买很多很多的零食放着,每次康夫饿了都会问他要,可是机器猫只会把价格最低的零食分给康夫吃。由于机器猫的零食实在太多,每次找价格最低的零食非常麻烦。希望你编写一个程序帮助他。

Input
第 1 行:整数 T (1≤T≤10) 为问题数

第 2 行开始的数据:每个问题的第一行是一个整数 n (1≤n≤100 000),表示后面有多少个操作,接下来每行一个操作。操作共有两种形式:

B p 表示机器猫买了一种价格为 p 的零食,其中 p 为整数 (0≤p≤10000)
G 表示机器猫给了康夫一种零食

说明


裸的优先队列题。第一次写,发现greater居然表示从小到大……

#include<bits/stdc++.h>
using namespace std;

priority_queue<int, vector<int>, greater<int> > que;

int main()
{
    int cas, t, n;
    cin >> cas;
    for(t = 0; t < cas; ++t){
        cin >> n;
        printf("case #%d:\n",t);
        while(!que.empty()) que.pop();

        for(int i = 1; i <= n; ++i){
            string aa;
            cin >> aa;
            if(aa[0] == 'B'){
                int xx;
                cin >> xx;
                que.push(xx);
            }else{
                int tmp = que.top();
                que.pop();
                cout << tmp << endl;
            }
        }
    }
  return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值