0
点赞
收藏
分享

微信扫一扫

Problem B: STL——管道一

GG_lyf 2023-05-25 阅读 69


Home

Web Board

ProblemSet

Standing

Status

Statistics


Problem B: STL——管道一


Time Limit: 1 Sec   Memory Limit: 128 MB

Submit: 1940  

Solved: 1113

[Submit][Status][Web Board]


Description



现在有一个管道,这个管道是垂直的可以容纳许多字符串。我们定义如下操作。



1.插入 将一个字符串压入管道中,新压入的字符串位于管道的最上方。



2.查询并且删除 输出管道中最低端的字符串,并且将该字符串删除,删除之后原来位于第二低的字符串到了最低端,如果管道为空,输出-1



3.将管道清空



Input



第一行为一个整数Q 不超过1000



之后Q行 每行首先一个整数 代表操作 1 2 3 分别对应三种操作



如果操作为一 之后跟随一个字符串 只包含小写字母



Output



每一个2操作输出相应的答案



Sample Input



61 aabb21 aaccvb21 ffvv2



Sample Output



aabbaaccvbffvv



HINT



用STL的queue容易解决





Append Code


[ Submit][Status][Web Board]


한국어<  中文 فارسی English ไทย All Copyright Reserved 2010-2011 SDUSTOJ TEAM
GPL2.0 2003-2011 HUSTOJ Project TEAM
Anything about the Problems, Please Contact Admin:admin


#include <iostream>
#include <queue>
using namespace std;
int main()
{
    int Q;
    while( cin >> Q )
    {
          queue <string> q;
       for(int i = 0; i < Q; i++)
       {
           int num;
           cin >> num;
           if(num == 1)
           {
               string t;
               cin >> t;
               q.push(t);
           }
           else if(num == 2 )
           {
               if(q.empty())
                cout << "-1" << endl;
                else
                {
                    cout << q.front() << endl;
                    q.pop();
                }
           }
           else
           {
               while( !q.empty()) q.pop();
           }
       }
 
    }
}



举报

相关推荐

0 条评论