编程题
### 问题描述 宝玉作为贾府的少爷,每次出行可谓是风光无限,出行时随从数量极多,更是坐着象征尊贵的 "玲珑轿"。 贪玩的宝玉有一个初步的出行计划,这可以用一个长度为 $n$ 的字符串 $S$ 表示:如果第 $i$ 天宝玉打算出行,则 $S_i=1$;否则 $S_i=0$。 每次出行,宝玉都需要坐上 "玲珑轿"。如果没有干净的 "玲珑轿",则他不会出行。宝玉具有一定的洁癖,每次他使用过的 "玲珑轿" 都需要经过 $d$ 天的清洗和整理后才会再次使用。例如,某辆 "玲珑轿" 在第 $x$ 天使用了,那么它最快可以在第 $(x+d)$ 天再次使用。 接下来可能会发生 $q$ 个事件,事件包括以下两种: 1. 贾母对宝玉天天出行游玩早已不满,宝玉为了应对贾母,在某些时刻会更改自己的出行计划。贾母不在府上时,他可能会将某个 $S_x=0$ 变为 $S_x=1$;贾母在府上时也可能会将某个 $S_x=1$ 变为 $S_x=0$。 2. 在不断地修改出行计划同时,宝玉会随时询问作为管家的你,如果最初只有 $k$ 台 "玲珑轿" 可供使用,能否满足当前的出行计划。若能满足则输出 $-1$,否则输出最早无法成功出行的一天。 ### 输入格式 第一行输入两个整数 $n,d$ $(1 \leq d \leq n \leq 2 \times 10^5)$,表示宝玉的出行计划天数和 "玲珑轿" 的使用间隔。 第二行输入一个长度为 $n$ 的 $01$ 字符串 $S$,表示宝玉最开始的出行计划。 第三行输入一个整数 $q$ $(1 \leq q \leq 2 \times 10^5)$,表示事件的数量。 接下来 $q$ 行,每行两个整数 $op,x$ $(1 \leq op \leq 2, 1 \leq x \leq n)$ 表示一次事件。 - 若 $op=1$,则将 $S_x$ 翻转,即 $1$ 变为 $0$,$0$ 变为 $1$。 - 若 $op=2$,则表示 $k=x$ 的一次查询。 ### 输出格式 对于每个 $op=2$ 的查询,输出一行一个整数作为答案。 ### 样例输入 ```text 5 2 01010 3 2 1 1 3 2 1 ``` ### 样例输出 ```text -1 3 ``` ### 说明 第一次查询时,可以满足每天的出行需求,输出 $-1$。 第二次查询时,在第 $3$ 天没有 "玲珑轿" 使用。
查看答案
赣ICP备20007335号-2