Yuulis.log

Yuulis.log

トンネルを抜けるとそこは参照エラーであった。

【AtCoder】ABC 402 B - Restaurant Queue | 緑コーダーが解くAtCoder

atcoder.jp

配点: 200 点 / 実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: ???

問題概要

レストランの前の待ち行列の管理を考える。はじめ、待ち行列に並んでいる人はいない。  Q 個のクエリが与えられるので順に処理せよ。なお、クエリは2種類あり、以下のいずれかの形式で与えられる。

  • 1 X : 待ち行列の末尾に1人並ぶ。このとき並ぶ人はメニュー番号が  X の食券を持って並ぶ。
  • 2 : 待ち行列の先頭にいる人をレストランに案内する。このとき案内される人が持っている食券のメニュー番号を出力する。

制約

  •  1 \leq Q \leq 100
  •  1 \leq X \leq 100
  • クエリ2について、案内する前に待ち行列に並んでいる人がいる
  • 入力は全て整数

考察

問題名にもある通り、本問はqueueというデータ構造を用いることで簡単に解くことができる。

クエリ1についてはqueue.push(X)で良いし、クエリ2についてもqueue.front()を出力した後にqueue.pop()すればよい。

実装例

#include <bits/stdc++.h>
using namespace std;

// ======================================== //

int main()
{
    int Q;
    cin >> Q;

    queue<int> que;
    while (Q--)
    {
        int t;
        cin >> t;

        if (t == 1)
        {
            int X;
            cin >> X;
            que.push(X);
        }
        else
        {
            cout << que.front() << endl;
            que.pop();
        }
    }

    return 0;
}

atcoder.jp

実装時間: 5分以内

コメント

最近はB問題でもデータ構造を要求してくるようになったみたい。