关注
第三题的一点思路,考试的时候想到用滑动窗口解了,愣是没滑出来,最后写了个暴搜只能过30%
考完就想明白咋写了😭
n, k = [int(i) for i in input().split()]
arr = [int(i) for i in input().split()]
strs = input()
def getm(num,m):
res = 0
while True:
if num//m == num/m:
res+=1
num//=m
else:
break
return res
res = float('inf')
l = 0
rcnt2 = 0
rcnt5 = 0
bcnt2 = 0
bcnt5 = 0
for r in range(len(strs)):
if strs[r] == 'R':
rcnt2 += getm(arr[r],2)
rcnt5 += getm(arr[r],5)
else:
bcnt2 += getm(arr[r], 2)
bcnt5 += getm(arr[r], 5)
while min(rcnt2,rcnt5) + min(bcnt2,bcnt5) >= k:
tmp2 = getm(arr[l],2)
tmp5 = getm(arr[l],5)
if strs[l] == "R":
rcnt2-=tmp2
rcnt5-=tmp5
else:
bcnt2-=tmp2
bcnt5-=tmp5
res = min(res,r-l+1)
l+=1
print(res)
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 国企秋招,你投了吗? #
19639次浏览 167人参与
# 应届生第一份工作最好去大厂吗? #
25151次浏览 482人参与
# 乐堡互娱校招 #
30268次浏览 268人参与
# 你在职场中沾染到的“坏”习惯 #
16220次浏览 124人参与
# 贝壳求职进展汇总 #
28838次浏览 169人参与
# 你的国庆怎么过 #
47254次浏览 483人参与
# 思朗科技求职进展汇总 #
54094次浏览 384人参与
# 怎么防止在试用期被辞退 #
138831次浏览 944人参与
# 你会为了工作牺牲生活吗? #
44384次浏览 358人参与
# 签约有哪些注意事项 #
46213次浏览 268人参与
# 海尔求职进展汇总 #
8486次浏览 35人参与
# 歌尔求职进展汇总 #
66077次浏览 353人参与
# ___岗狗都不干,我干! #
18389次浏览 126人参与
# 机械人值得去的国央企 #
77862次浏览 450人参与
# 入职跑路最快的一次经历 #
33024次浏览 216人参与
# 硬件开发岗知多少 #
17576次浏览 124人参与
# 秋招感动瞬间 #
27158次浏览 265人参与
# 机械只有转码才有出路吗? #
140496次浏览 1629人参与
# 校招谈薪技巧 #
48435次浏览 707人参与
# 应届生应该先就业还是先择业 #
139199次浏览 725人参与
# 通信硬件岗投递时间线 #
25899次浏览 88人参与
# 拿到offer之后,可以做些什么 #
32960次浏览 198人参与