用户输出
0
系统信息
Exited with return code 0
编号 | 题目 | 状态 | 分数 | 总时间 | 内存 | 代码 / 答案文件 | 提交者 | 提交时间 |
---|---|---|---|---|---|---|---|---|
#17362 | #1028. OK U! | Wrong Answer | 25 | 832 ms | 4828 K | Python 3 / 1.7 K | 192022211835 | 2024-10-15 22:45:24 |
def max_OU(n, m, s):
left = 0
right = 0
max_ou = 0
current_ou = 0
k_used = False
while right < n:
if s[right] == 'O':
o_count = 1
# 计算窗口内"O"的数量
for i in range(right + 1, n):
if s[i] == 'O':
o_count += 1
elif s[i] == 'K':
break
elif s[i] == 'U':
break
u_count = 0
# 计算窗口内"U"的数量
for i in range(right + 1, n):
if s[i] == 'U':
u_count += 1
elif s[i] == 'K':
if not k_used:
u_count += o_count
k_used = True
break
elif s[i] == 'O':
break
current_ou += min(o_count, u_count)
max_ou = max(max_ou, current_ou)
elif s[right] == 'U':
if current_ou > 0:
current_ou -= 1
elif s[right] == 'K' and not k_used:
k_used = True
# 尝试删除"K",看是否能增加"OU"对的数量
tmp_right = right
while tmp_right < n and s[tmp_right] != 'U':
tmp_right += 1
if tmp_right < n:
current_ou += 1
max_ou = max(max_ou, current_ou)
right += 1
if current_ou > 0 and left < right and s[left] == 'O':
current_ou -= 1
left += 1
return max_ou
# 读取输入
n, k = map(int, input().split())
s = input()
# 计算并输出结果
print(max_OU(n, k, s))
100 1
OKOUUOKUUOOOKOOOKKOOKOOUOUKUOKUKOUOUOOKOOOUUOOOKKOUKKUOUOOOOUOOUKOUOOOUKUOUUUKOOOUOUOUKOOKUOOU
<6 bytes omitted>
用户输出
1
Special Judge 信息
Files user_out and answer differ
系统信息
Exited with return code 0
10000 1000
UUKUUUUOOUOKOUKOOKUOKOOUOOUUKUUOKUUOUOOOKOKKKUOKOUOKOKOOOUKOUKUUOOKOOKUOUKKOOOKUKOUOKKKUK
<9911 bytes omitted>
用户输出
1
Special Judge 信息
Files user_out and answer differ
系统信息
Exited with return code 0