原始问题:
小红操作盒子放球,求所有盒子至少一个小球的最早次数
根据题目描述,我们可以使用一个长度为n的数组balls来记录每个盒子中的小球数量。初始时,所有盒子中的小球数量都为0。
然后,我们按照给定的操作进行模拟。对于每一次操作,如果操作类型为1,则将编号为x的盒子中的小球数量加1;如果操作类型为2,则将除了编号为x的盒子以外的所有盒子中的小球数量加1。
在模拟过程中,我们需要记录每次操作后,所有盒子中至少有一个小球的情况。我们可以使用一个变量count来记录已经满足条件的操作次数。
具体的算法如下:
- 读取输入的n和m。
- 初始化一个长度为n的数组balls,所有元素初始值为0。
- 初始化变量count为0。
对于每一次操作i,执行以下步骤:
- 读取操作类型ti和操作值xi。
- 如果ti为1,则将编号为xi的盒子中的小球数量加1。
- 如果ti为2,则将除了编号为xi的盒子以外的所有盒子中的小球数量加1。
- 判断是否所有盒子中都至少有一个小球,如果是,则将count的值更新为当前操作次数i。
- 输出count的值。
下面是一个示例的Python代码实现:
n, m = map(int, input().split())
balls = [0] * n
count = 0
for i in range(m):
ti, xi = map(int, input().split())
if ti == 1:
balls[xi-1] += 1
else:
for j in range(n):
if j != xi-1:
balls[j] += 1
if 0 not in balls:
count = i+1
break
print(count if count > 0 else 1)希望能帮助到你!如果有任何疑问,请随时提问。
Prev:使用java前缀和的方法来解:给定n个正整数组成的数组,求平均数正好等于k的最长连续子数组的长度