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)

全部评论

相关推荐

06-26 10:08
门头沟学院 C++
北京Golang实习,一个月4700,吃住都不报,公司位置在海淀。请问友友怎么看呢?如果要租房的话有什么建议吗
码农索隆:租房肯定是合租了,剩下的钱,差不多够正常吃饭了,看看能不能学到东西吧
点赞 评论 收藏
分享
lllllkin:感觉可以精简到一页简历,有些排版感觉不是必须的。 时间线越早的,你自己越熟悉的放前面。描述可以更精简些,一些问题解决感觉可以不用写具体技术栈,卖个关子,等面试官问。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务