提交时间:2026-06-17 06:34:41
运行 ID: 91809
为了整理学校下发的数学学习辅助教具——《数字卡片》,你需要将卡片按顺序叠成一堆。 接下来你需要完成 Q 个操作,其中第 i 个操作需要按照规定执行: 如果 ti = 1 ,你需要将一张写着 xi 的卡片放到卡片堆的最上面。 如果 ti = 2 ,你需要将一张写着 xi 的卡片放到卡片堆的最下面。 如果 ti = 3 ,你需要输出从上到下第 xi 张卡片上的数字。 请你编写一个程序,完成这些操作。 输入: Q t1 x1 t2 x2 ... tQ xQ 输出: 每一次 ti = 3 ,你都需要输出一个整数,以换行分隔。 样例: 输入 6 1 2 1 1 2 3 3 1 3 2 3 3 输出 1 2 3#include <iostream> #include <deque> using namespace std; int main() { // 加速cin、cout,处理大量数据更快 ios::sync_with_stdio(false); cin.tie(0); int Q; cin >> Q; deque<int> cards; for (int i = 0; i < Q; ++i) { int t, x; cin >> t >> x; if (t == 1) { // 放到最上面 = 队头插入 cards.push_front(x); } else if (t == 2) { // 放到最下面 = 队尾插入 cards.push_back(x); } else if (t == 3) { // 从上第x张,下标x-1 cout << cards[x - 1] << '\n'; } } return 0; }