def restore_order(counts):N = len(counts)# 初始化每个人的喊“过”次数pass_counts = [0] * Ncurrent_number = 1index = 0# 模拟游戏过程while True:# 如果当前数字是7的倍数或包含7,则喊“过”if current_number % 7 == 0 or '7' in str(current_number):pass_counts[index] += 1# 检查是否达到最大数字Kif sum(pass_counts) == sum(counts):break# 移动到下一个人index = (index + 1) % Ncurrent_number += 1# 返回正确的顺序return pass_counts# 读取输入counts = list(map(int, input.strip.split))# 计算并输出结果print(' '.join(map(str, restore_order(counts))))输入处理:摘要:def restore_order(counts):N = len(counts)# 初始化每个人的喊“过”次数pass_counts = [0] * Ncurrent_number = 1index = 0# 模拟游戏过程while True:# 如果当前数
读取输入的喊“过”的次数,存储在 counts 列表中。
初始化:初始化一个长度为 N 的列表 pass_counts,用于存储每个人喊“过”的次数。
模拟游戏过程:从数字1开始,依次检查每个数字是否是7的倍数或包含7。
如果是,则当前人喊“过”,并增加其喊“过”的次数。
检查是否达到总喊“过”的次数,如果达到则结束模拟。
移动到下一个人,继续模拟。
输出正确的喊“过”的次数顺序。
来源:执争朝夕