书上没有链接
5.2 队列 P69(书上代码也奇奇怪怪)

#include <iostream>
#include <cstdio>
#include <queue>
#include <vector>

using namespace std;

queue<int> dog;
queue<int> cat;
vector<int> order;//标记

int main()
{
    int n,m,t;
    int j=-1;//删到哪个了
    int k=0;//总共k个动物
    scanf("%d",&n);
    for(int i=0; i<n; ++i)
    {
        scanf("%d %d",&m,&t);
        if(m==1){
            ++k;
            if(t<0){
                cat.push(t);
                order.push_back(0);//0代表猫,1代表狗
            }
            else{
                dog.push(t);
                order.push_back(1);
            }
        }
        else{
            ++j;
            if(k>=j+1){//收留个数>=送出去个数
                if((t==0&&order[j]==1)||t==1){
                    printf("%d ",dog.front());
                    dog.pop();
                }
                else{
                    printf("%d ",cat.front());
                    cat.pop();
                }
            }
        }
    }
}