首页 > 试题广场 >

单组_spj判断数组之和

[编程题]单组_spj判断数组之和
  • 热度指数:13754 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定两个整数 nm ,请你构造一个长度为 n 的正整数数组,使得其元素之和为 m
保证有 n \leq m

输入描述:
第一行有两个整数 n\ (\ 1 \leq n \leq 10^5\ )m\ (\ n \leq m \leq 10^9\ )


输出描述:
输出 n 个正整数,它们的和需要为 m
示例1

输入

3 6

输出

1 2 3
换掉自测输入 3 6不严谨
发表于 2025-10-05 14:23:39 回复(0)
我的错误提示是:
输入 3 100000
预期输出 1 1 999998
为什么我提交后的用例是这种,为什么你们的题解按均匀分布能过,很纳闷啊,顺序错了也不过
发表于 2025-03-10 13:56:42 回复(0)
def construct_array(n, m):
    # 初始化数组,每个元素为 1
    arr = [1] * n
    # 计算剩余的和
    remaining = m - n
    # 均匀分配剩余的和
    for i in range(n):
        # 计算每个元素可以增加的最大值
        add = min(remaining, m // n)
        arr[i] += add
        remaining -= add
        if remaining == 0:
            break
    return arr

# 读取输入
n, m = map(int, input().split())
# 构造数组
result = construct_array(n, m)
# 输出结果,确保顺序正确
print(" ".join(map(str, result)))

发表于 2024-12-14 12:31:02 回复(0)