malloc_88 2020-04-24 17:19 采纳率: 0%
浏览 112

PAT A1057 STACK(30) 有没有大佬能帮我看看这道题哪里错了?只得了10分

图片说明

图片说明
图片说明

#include<cstdio>
#include<string>
#include<iostream>
#include<stack>
#include<set>
using namespace std;
int n;
int main()
{
    cin>>n;
    stack<int> s;
    multiset<int> order;
    int key;
    for(int i = 0; i < n; i++)
    {
        string ope;
        cin>>ope;
        if(ope == "Push")
        {
            cin>>key;
            s.push(key);
            order.insert(key);
        }
        else if(ope == "Pop" && !s.empty())
        {
            int val = s.top();
            cout<<val<<endl;
            s.pop();
            order.erase(val);
        }
        else if(ope == "PeekMedian")
        {
            if(order.empty())
            cout<<"Invalid"<<endl;
            else
            {
                int num = s.size();
                num = (num%2 == 0)? num/2 : (num+1)/2;
                auto it = order.begin();
                cout<<(*it+num-1)<<endl;
            }
        }
        else
        {
            cout<<"Invalid"<<endl;
        }
    }
    return 0;
 } 
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 vc6.0中想运行代码的时候总是提示无法打开文件是怎么回事
    • ¥25 关于##爬虫##的问题,如何解决?:
    • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
    • ¥15 找一位技术过硬的游戏pj程序员
    • ¥15 matlab生成电测深三层曲线模型代码
    • ¥50 随机森林与房贷信用风险模型
    • ¥50 buildozer打包kivy app失败
    • ¥30 在vs2022里运行python代码
    • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
    • ¥15 求解 yolo算法问题