CF2038A.Bonus Project
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有 n 名编号为 1 到 n 的软件工程师。他们的老板承诺,如果他们完成一个额外项目,将给他们发放奖金。完成这个项目总共需要 k 个单位的工作。给第 i 名工程师的奖金是 ai 。第 i 名工程师估计他们的一个单位的工作价值为 bi 。如果奖金发放了,那么第 i 名工程师完成 c 个单位的工作的收益 si 定义为 si=ai−c⋅bi。如果奖金不发放,工程师将不会自愿做任何工作。工程师们已经一起工作了很多年,所以他们知道奖金将如何分配,以及他们的同事对劳动的估值是多少。也就是说,团队中的每个工程师都知道所有的 ai 和 bi。工程师们渴望得到奖金,所以他们同意按照以下过程在他们之间分配工作:
- 第一名工程师说:“我将完成 c1 个单位的工作”,其中 c1 是一个非负整数;
- 然后,第二名工程师说:“我将完成 c2 个单位的工作”,其中 c2 是一个非负整数;
-... 以此类推; - 最后,第 n 名工程师说:“我将完成 cn 个单位的工作”,其中 cn 是一个非负整数。
每个工程师都会说出一个 ci 来最大化他们自己的收益 si。如果预期的收益为零,工程师仍然会同意工作以获得经验并帮助他们的同事获得奖金。然而,如果出于某种原因预期的收益为负(工程师需要进行过量的工作,或者项目无法完成),那么该工程师将不会进行任何工作(完成0个单位的工作)。假设每个工程师的行为都是完美的,你的任务是找出每个工程师所说的数字 ci。
输入格式
第一行包含两个整数 n 和 k(1≤n≤1000;1≤k≤106),分别表示公司中的工程师人数和项目所需的工作单位数。第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109),其中 ai 表示如果项目完成,将支付给第 i 位工程师的奖金。第三行包含 n 个整数 b1,b2,…,bn(1≤bi≤1000),其中 bi 表示第 i 位工程师的工作单位成本。
输出格式
第一行包含两个整数 n 和 k(1≤n≤1000;1≤k≤106),分别表示公司中的工程师人数和项目所需的工作单位数。第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109),其中 ai 表示如果项目完成,将支付给第 i 位工程师的奖金。第三行包含 n 个整数 b1,b2,…,bn(1≤bi≤1000),其中 bi 表示第 i 位工程师的工作单位成本。
输入输出样例
输入#1
3 6 4 7 6 1 2 3
输出#1
1 3 2
输入#2
3 12 4 7 6 1 2 3
输出#2
0 0 0
输入#3
3 11 6 7 8 1 2 3
输出#3
6 3 2
说明/提示
在这两个例子中,工程师们分配了工作并获得了奖金,即使第三个工程师的收益为零。在第二个例子中,奖金项目需要太多工作量才能完成,所以工程师们根本不工作反而更有益。
输入解题思路,AI测评打分。不知道怎么写?