#P1505. Copying Books
Copying Books
题目描述
在印刷术发明之前,书籍的复制工作异常艰难。所有内容都需要由所谓的抄写员手工誊写。抄写员拿到一本书后,往往需要数月才能完成抄录。15世纪最著名的抄写员之一是Xaverius Endricus Remius Ontius Xendrianus(简称Xerox)。无论如何,这份工作既繁琐又枯燥。唯一的提速方法就是雇佣更多抄写员。
某剧院剧团想要排演著名的古典悲剧。这些剧本被分成了多本书籍,演员们自然需要更多副本。于是他们雇佣了大量抄写员来复制这些书籍。假设现在有本书(编号至),每本的页数可能不同(),需要为每本书制作一个副本。任务是将这些书分配给个抄写员()。每本书只能分配给一个抄写员,且每个抄写员必须分配到连续的书籍序列。也就是说,存在一个递增序列,使得第个抄写员分配到编号从到的书籍。完成所有书籍复制的时间取决于分配到最多工作的抄写员。因此,我们的目标是最小化单个抄写员分配到的最大页数。任务是找到最优分配方案。
输入格式
输入包含个测试用例。第一行仅包含正整数。随后是各测试用例,每个用例包含两行:
- 第一行:两个整数和()
- 第二行:个正整数,用空格分隔(所有值小于)
输出格式
每个用例输出一行,将输入的序列划分为恰好部分,使得单部分的最大和尽可能小。使用斜杠字符('/')分隔各部分。数字之间、数字与斜杠之间必须有一个空格。
若存在多个解,则优先选择使第一个抄写员工作量最小的方案,其次第二个,依此类推。但每个抄写员至少需分配到一本书。
输入样例
2
9 3
100 200 300 400 500 600 700 800 900
5 4
100 100 100 100 100
输出样例
100 200 300 400 500 / 600 700 / 800 900
100 / 100 / 100 / 100 100
题目来源
年中欧地区竞赛