NC13822 Keep In Line

题目

  • 原题地址:Keep In Line
  • 题目编号:NC13822
  • 题目类型:队列
  • 时间限制:C/C++ 1秒,其他语言2秒
  • 空间限制:C/C++ 262144K,其他语言524288K

1.题目大意

  • 交叉给出入队和出队的人,问有多少人没有插队

2.题目分析

  • 一个队列存放不插队的序列,一个map存放该人是否已经离开队伍

3.题目代码

#include <bits/stdc++.h>

using namespace std;

int main() {
    int t;
    cin >> t;
    while(t--) {
        int n;
        cin >> n;
        queue<string> q;
        map<string,int> m;
        int cnt = n/2;
        string ty, na;
        for(int i=0;i<n;i++){
            cin >> ty >> na;
            if(ty=="in") q.push(na), m[na] = 1;
            else {
                while(m[q.front()]==0) q.pop();
                if(na!=q.front()) cnt--;
                m[na] = 0;
            }
        }
        cout << cnt << endl;
    }
}
posted @ 2022-08-26 16:46  仪战群儒  阅读(125)  评论(0)    收藏  举报