#P01030. 百米竞赛分组简单版

百米竞赛分组简单版

题目描述

学校运动会有 mm 位选手(编号依次是1,2,3,...,m1,2,3,...,m)参加百米赛跑,田径场共有 nn 条跑道,因为每一轮比赛一条跑道上最多只能有 11 人,所以需要将选手分成多组进行比赛。请你编写一个程序来实现分组,具体要求如下:

  1. 组数要尽可能少,分组按照自然序列编号(第 11 组,第 22 组,......
  2. 每组人数要尽可能相等,只允许编号小的组比编号大的组人数多(结合下面的例2分析这条规则
  3. 按照选手编号从小到大依次指派选手到各组各条跑道(11 号选手到第 1111 跑道,22 号选手到第 1122 跑道,33 号选手到第 1133 跑道,......

11m=16,n=8m=16,n=8 时,分组情况如下:

image

22m=26,n=8m=26,n=8 时,分组情况如下(结合下表分组结果分析上面提到的分组要求2):

image

输入格式

11 行,两个正整数 m,nm,n

输出格式

22 个整数,就是按照上述规则安排跑道需要安排的组数和每组至少安排的人数,两者之间用一个空格隔开。

输入输出样例

16 8
2 8
26 8
4 6

说明/提示

👀️ 对于100%100\%的数据,1nm1041 \leq n \leq m \leq 10^4

👀️ 对于输入样例2,按照规则安排跑道,需要安排 44 组,每组人数是 66 人或 77 人,那每组至少安排 66 人。

👀️ C/C++中可以使用 cmath 数学函数库中的 ceil 函数向上取整,floor 函数向下取整。