p1281.cpp

来自「大概POJ上50道比较难的题的代码」· C++ 代码 · 共 45 行

CPP
45
字号
#include <iostream>
#include <list>
using namespace std;
const int MAXN = 10001;
int main(){
    int m,n;
    while(cin >> m >> n){
        list <int> q;
        int a[MAXN];
        for(int i = 0;i < n;++i) scanf("%d",&a[i]);
        char ch;
        int x,p(1),k(0),j(0);
        while(scanf("%c",&ch) != EOF && ch != 'e'){
            switch(ch){
                case 'a':{
                    scanf("%d",&x);
                    list<int>::iterator it;
                    for(it = q.begin();it != q.end() && *it < x;++it);
                    q.insert(it,x);
                    break;
                }
                case 'r':
                    if(p == 1){
                        if(++k == a[j]){
                            printf("%d\n",q.front());
                            ++j;
                        }
                        q.pop_front();
                    }else{
                        if(++k == a[j]){
                            printf("%d\n",q.back());
                            ++j;
                        }
                        q.pop_back();
                    }
                    break;
                case 'p':
                    scanf("%d",&p);
                    break;
            }
        }
        puts("");
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?