[DTCPC 2024] 0=1=0

Luogu
IDLGP10168
Time1000ms
Memory512MB
DifficultyP3
2024Special Judge构造洛谷月赛
给你一个只含 $0$ 和 $1$ 的字符串 $s$。 每次你可以选择 $i\in [1,n)$,并将 $s_i$ 和 $s_{i+1}$ 分别取反。 定义 $1$ 取反结果为 $0$,$0$ 取反结果为 $1$。 要求使得顺序对数量最大,即使得 $i\lt j$ 且 $s_i\lt s_j$ 的 $(i,j)$ 个数最大。 输出方案。 ## Input 一行一个字符串 $S$($\lvert S\rvert\leq 2\times 10^5$)。 ## Output 第一行输出一个数字,表示最大的顺序对个数。 第二行输出一个数字 $x$,表示操作步数。 接下来输出一行 $x$ 个数字,第 $i$ 个数字 $a_i$ 表示第 $i$ 步操作的是 $s_{a_i}$ 和 $s_{a_i+1}$ 。 **你要保证操作步数不超过 $2\times 10^5$ 步,但不必最小化操作步数。** [samples]
Samples
Input #1
111100
Output #1
8
2
1 5
API Response (JSON)
{
  "problem": {
    "name": "[DTCPC 2024] 0=1=0",
    "description": {
      "content": "给你一个只含 $0$ 和 $1$ 的字符串 $s$。 每次你可以选择 $i\\in [1,n)$,并将 $s_i$ 和 $s_{i+1}$ 分别取反。 定义 $1$ 取反结果为 $0$,$0$ 取反结果为 $1$。 要求使得顺序对数量最大,即使得 $i\\lt j$ 且 $s_i\\lt s_j$ 的 $(i,j)$ 个数最大。 输出方案。",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P3"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP10168"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "给你一个只含 $0$ 和 $1$ 的字符串 $s$。\n\n每次你可以选择 $i\\in [1,n)$,并将 $s_i$ 和 $s_{i+1}$ 分别取反。\n\n定义 $1$ 取反结果为 $0$,$0$ 取反结果为 $1$。\n\n要求使得顺序对数量最大,即使得 $i\\lt j$ 且 $s_i\\lt s_j$ 的 $(i,j)$ 个数最大。\n\n输出方案。\n\n## Input\n\n一行一个字符串 $S$($\\lv...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments