{"problem":{"name":"【模板】双端队列 1","description":{"content":"请你实现 $m$ 个双端队列，支持如下的 $q$ 次操作： - `push_back(a,x)`：在第 $a$ 个双端队列中从尾部插入一个元素 $x$； - `pop_back(a)`：在第 $a$ 个双端队列中从尾部弹出一个元素。 - `push_front(a,x)`：在第 $a$ 个双端队列中从头部插入一个元素 $x$； - `pop_front(a)`：在第 $a$ 个双端队列中从头部弹","description_type":"Markdown"},"platform":"Luogu","limit":{"time_limit":2000,"memory_limit":256000},"difficulty":{"LuoguStyle":"P2"},"is_remote":true,"is_sync":true,"sync_url":null,"sign":"LGB3656"},"statements":[{"statement_type":"Markdown","content":"请你实现 $m$ 个双端队列，支持如下的 $q$ 次操作：\n\n- `push_back(a,x)`：在第 $a$ 个双端队列中从尾部插入一个元素 $x$；\n- `pop_back(a)`：在第 $a$ 个双端队列中从尾部弹出一个元素。\n- `push_front(a,x)`：在第 $a$ 个双端队列中从头部插入一个元素 $x$；\n- `pop_front(a)`：在第 $a$ 个双端队列中从头部弹出一个元素。\n- `size(a)`：查询第 $a$ 个双端队列的元素个数；\n- `front(a)`：查询第 $a$ 个双端队列的队首元素；\n- `back(a)`：查询第 $a$ 个双端队列的队尾元素；\n\n对于 `pop_back`，`pop_front`，`front` 和 `back` 操作，若当前双端队列为空则不进行，直接跳过该次操作。\n\n## Input\n\n输入的第一行是一个正整数 $q$，表示操作次数。\n\n接下来 $q$ 行，每行先是一个字符串，保证为 `push_back` 或者 `pop_back` 或者 `push_front` 或者 `pop_front` 或者 `size` 或者 `front` 或者 `back` 之一。接下来是 $1$ 或 $2$ 个正整数，分别表示 $a$ 和 $x$。\n\n## Output\n\n对于每个 `size` 或者 `front` 或者 `back` 操作，输出一行表示答案。\n\n[samples]\n\n## Background\n\nAya 衷心祝愿大家不再因为 `std::deque` 重蹈覆辙。\n\n## Note\n\n**【数据范围】**\n\n| 子任务 | $m \\leq$ | $q \\leq$ | 分值 |\n| :-----------: | :-----------: | :-----------: | :-----------: |\n| $1$ | $10$ | $10$ | $10$ |\n| $2$ | $2000$ | $2000$ | $20$ |\n| $3$ | $10^5$ | $10^5$ | $30$ |\n| $4$ | $10^6$ | $10^6$ | $40$ |\n\n对于所有数据，$1 \\leq m,q \\leq 10^6$，$1 \\leq x \\leq 10^9$。","is_translate":false,"language":"English"}],"meta":{"iden":"LGB3656","tags":["O2优化","队列","模板题"],"sample_group":[["10\npop_back 2\npush_back 1 1\npush_front 1 3\npush_front 2 2\npush_front 2 3\npop_back 1\nsize 1\npush_back 2 3\nback 1\nfront 1","1\n3\n3\n"]],"created_at":"2026-03-03 11:09:25"}}