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