2. 小球投盒 python

小红一共有 n个盒子,标号为 1 到 n,小红向盒子里放入小球 m次,每次进行以下两个操作中的一个:

  1. 向编号为 x的盒子里放入一个小球;
  2. 向除了编号为x 的其他 n−1 盒子里放入一个小球。

小红想知道,第几次操作之后,所有盒子里至少都有一个小球,如果一直无法达到这个目标,输出 −1。

参考实现:

https://www.zhihu.com/question/617981690/answer/3211280635

# 输入的n, m
n, m = map(int, input().split())
# 使用集合存储整数集合
integer_set = set(range(1, n+1))
# 循环计数变量
i = 1
while i <= m:
    query = list(map(int, input().split()))
    if query[0] == 1:
        # 如果输入为 1,移除下一个输入的整数
        integer_set.discard(query[1])
        # 如果集合为空,退出循环
        if not integer_set:
            break
    else:
        # 否则,读取下一个输入的整数
        x = query[1]
        # 如果集合中不包含 x,退出循环
        if x not in integer_set:
            break
        # 否则,重置集合并添加 x
        integer_set = {x}
    i += 1
# 输出结果,如果 i 大于 m,输出 -1,否则输出 i
print(-1 if i > m else i)

全部评论

相关推荐

MingoTree:看不出你你的技术栈,想找什么工作,然后课设项目别写上去了,自我评价删了,前后端你想好你要干啥,这种简历投上去秒挂的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务