【模板】双端队列 1

Luogu
IDLGB3656
Time2000ms
Memory250MB
DifficultyP2
O2优化队列模板题
请你实现 $m$ 个双端队列,支持如下的 $q$ 次操作: - `push_back(a,x)`:在第 $a$ 个双端队列中从尾部插入一个元素 $x$; - `pop_back(a)`:在第 $a$ 个双端队列中从尾部弹出一个元素。 - `push_front(a,x)`:在第 $a$ 个双端队列中从头部插入一个元素 $x$; - `pop_front(a)`:在第 $a$ 个双端队列中从头部弹出一个元素。 - `size(a)`:查询第 $a$ 个双端队列的元素个数; - `front(a)`:查询第 $a$ 个双端队列的队首元素; - `back(a)`:查询第 $a$ 个双端队列的队尾元素; 对于 `pop_back`,`pop_front`,`front` 和 `back` 操作,若当前双端队列为空则不进行,直接跳过该次操作。 ## Input 输入的第一行是一个正整数 $q$,表示操作次数。 接下来 $q$ 行,每行先是一个字符串,保证为 `push_back` 或者 `pop_back` 或者 `push_front` 或者 `pop_front` 或者 `size` 或者 `front` 或者 `back` 之一。接下来是 $1$ 或 $2$ 个正整数,分别表示 $a$ 和 $x$。 ## Output 对于每个 `size` 或者 `front` 或者 `back` 操作,输出一行表示答案。 [samples] ## Background Aya 衷心祝愿大家不再因为 `std::deque` 重蹈覆辙。 ## Note **【数据范围】** | 子任务 | $m \leq$ | $q \leq$ | 分值 | | :-----------: | :-----------: | :-----------: | :-----------: | | $1$ | $10$ | $10$ | $10$ | | $2$ | $2000$ | $2000$ | $20$ | | $3$ | $10^5$ | $10^5$ | $30$ | | $4$ | $10^6$ | $10^6$ | $40$ | 对于所有数据,$1 \leq m,q \leq 10^6$,$1 \leq x \leq 10^9$。
Samples
Input #1
10
pop_back 2
push_back 1 1
push_front 1 3
push_front 2 2
push_front 2 3
pop_back 1
size 1
push_back 2 3
back 1
front 1
Output #1
1
3
3
API Response (JSON)
{
  "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$ 个双端队列中从头部弹...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments