#P10832. [POI2019 R2]Marudny Bajtazar
[POI2019 R2]Marudny Bajtazar
题目描述
圣诞节即将来临,Bajtazar 决定购买新的装饰品来装点自己的家。今年,他想尝试极简风格,计划买一条只有绿色和红色两种颜色的灯链。于是,他前往附近的灯饰店,请店主展示双色灯链。
然而,多年在字节王国从事各种工作的经历,让 Bajtazar 养成了对任何事物(哪怕是最琐碎的)都有自己看法的习惯,而且他从不吝于表达意见(即便没人愿意听)。特别是在时尚和美学方面,他的观念尤为固执,这对那些接待过他的店主来说尤为头疼,因为他们总是要听他抱怨商品哪里不尽如人意。
这次也不例外:Bajtazar 盯着店主展示的灯链看了半天,终于开口说:「总体来说,这条灯链还不错,但整体美感被一个问题破坏了——链条里没有一段连续四个灯泡的片段,颜色依次是红-绿-绿-红。」由于店主没有其他灯链可供选择,他决定更换其中一个灯泡的颜色,以满足这个要求。
Bajtazar 满意地点了点头,但没过多久又说:「现在还差一段颜色为绿-红-绿-绿-红的片段。」店主又换了一个灯泡的颜色。Bajtazar 接着说:「现在看起来很美,但还缺少另一个对颜色搭配很重要的片段。」
虽然 Bajtazar 非常耐心地解释为什么灯链还不完美,但他担心店主更换灯泡颜色的方式过于随意,可能无法快速达到目标。为了更高效地解决问题,他请你帮忙编写一个程序,帮助他快速找到灯链中缺失的、影响他美感的片段。作为第一步,请你为他编写一个程序,计算给定灯链中未出现的最短颜色片段的长度。
输入格式
输入的第一行包含两个整数 和 ,用单个空格分隔,分别表示灯链中灯泡的数量和店主更换颜色的次数。第二行包含一个长度为 的字符串,由字符 0
和 1
组成,表示灯链中各灯泡的颜色(例如 0
表示红色,1
表示绿色)。
接下来的 行描述颜色更换操作,每行包含一个整数 ,表示店主更换了第 个灯泡的颜色。
输出格式
输出应包含正好 行,每行包含一个整数。第 行表示在店主完成前 次更换后,灯链颜色编码字符串中未出现的最短子字符串(由 0
和 1
组成)的长度。
6 2
001010
6
2
2
3
2
样例 2
见附加文件下 [mar1.in
](file:mar1.in) 和 [mar1.out
](file:mar1.out)。
该样例满足 ,灯链为 10000
;
样例 3
见附加文件下 [mar2.in
](file:mar2.in) 和 [mar2.out
](file:mar2.out)。
该样例满足 ,初始灯链为 000...0
(全为 0
),更换第一个和最后一个灯泡;
样例 4
见附加文件下 [mar3.in
](file:mar3.in) 和 [mar3.out
](file:mar3.out)。
该样例满足 ,初始灯链为 1000...0
(开头为 1
,后面全为 0
),依次更换所有灯泡。
数据范围与提示
详细子任务附加限制及分值如下表所示。
子任务 | 附加限制 | 分值 |
---|---|---|
无附加限制 |