【AtCoder】ABC 402 B - Restaurant Queue | 緑コーダーが解くAtCoder
配点: 200 点 / 実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: ???
問題概要
レストランの前の待ち行列の管理を考える。はじめ、待ち行列に並んでいる人はいない。 個のクエリが与えられるので順に処理せよ。なお、クエリは2種類あり、以下のいずれかの形式で与えられる。
1 X: 待ち行列の末尾に1人並ぶ。このとき並ぶ人はメニュー番号がの食券を持って並ぶ。
2: 待ち行列の先頭にいる人をレストランに案内する。このとき案内される人が持っている食券のメニュー番号を出力する。
制約
- クエリ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; }
実装時間: 5分以内
コメント
最近はB問題でもデータ構造を要求してくるようになったみたい。