キューの使い方の確認!
問題概要
以下の 3 種類のクエリ ( 個) を高速に処理するプログラムを実装せよ。行列管理システムを模している。
- クエリタイプ 1:行列の最後尾に さんが並ぶ
- クエリタイプ 2:行列の先頭にいる人の名前を答える
- クエリタイプ 3:行列の先頭にいる人を列から抜けさせる
初期状態では、行列に 1 人も並んでいない。また、クエリタイプ 2, 3 が呼ばれるときには、人が 1 人以上並んでいることが保証される。
制約
メモ
キューを使う。解法は鉄則本にあるので、鉄則本を参照。
コード
#include <bits/stdc++.h> using namespace std; int main() { int Q, type; string S; cin >> Q; queue<string> que; // キュー while (Q--) { cin >> type; if (type == 1) { cin >> S; que.push(S); } else if (type == 2) { cout << que.front() << endl; } else { que.pop(); } } }