关注
第三题的一点思路,考试的时候想到用滑动窗口解了,愣是没滑出来,最后写了个暴搜只能过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)
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 为了去实习,我赌上了___ #
14308次浏览 158人参与
# 晒一晒你收到的礼盒 #
87404次浏览 426人参与
# uu们,春招你还来吗? #
6802次浏览 58人参与
# 2025年终总结 #
6887次浏览 137人参与
# 十二月请对我好一点 #
19724次浏览 285人参与
# 降低公积金和取消房补怎么选 #
22821次浏览 73人参与
# 父母对你找工作是助力还是阻力? #
9788次浏览 172人参与
# 实习打杂,要跑路吗 #
50415次浏览 320人参与
# 第一份工作能做外包吗? #
84643次浏览 568人参与
# 电信求职进展汇总 #
31016次浏览 166人参与
# 学历or实习经历,哪个更重要 #
200764次浏览 1059人参与
# 哪一瞬间让你觉得“这班不如不上” #
7367次浏览 117人参与
# 一人推荐一个值得做的项目 #
6726次浏览 101人参与
# 高薪高压 vs 低薪wlb,你怎么选? #
7530次浏览 89人参与
# 工作前VS工作后,你的心态变化 #
9820次浏览 132人参与
# 找工作时的取与舍 #
110142次浏览 828人参与
# 工作中出现了XX情况正常吗 #
24863次浏览 195人参与
# 市场营销人求职交流聚集地 #
162584次浏览 1212人参与
# 公司福利里最没用的一项是啥 #
5059次浏览 86人参与
# 回顾今年你干过的最“勇”的一件事 #
10187次浏览 139人参与
查看1道真题和解析