#572. 训练计划
训练计划
问题描述
顿顿在剩余的 天内准备完成 项训练。第 项训练编号为 ,耗时为 天:若从第 天开始训练,则该项训练的最后一天为 。
每项训练最多只依赖一项其它训练,若科目 依赖科目 (且 ),则科目 必须在科目 训练结束后才能开始:若科目 从第 天开始训练并于第 天结束,那么科目 最早只能从第 天开始训练。
没有依赖(即 )的科目可以从第 天开始训练。
请你计算每项科目的:
- 最早开始时间(最早能从哪一天开始训练);
- 若能在第 天前完成所有训练,则还需计算每项科目的最晚开始时间(在不耽误全部训练完成的前提下该科目能最晚从哪一天开始训练)。 若无法在第 天内完成全部训练,则只需输出“最早开始时间”一行。
输入格式
共三行:
第一行:两个正整数 和 ,分别表示可用天数和训练项数。
第二行: 个整数 ,其中 ,若 则科目 无依赖。
第三行: 个正整数 ,其中 。
- ,。
输出格式
若计算最早开始时间为 ,最晚开始时间为 :
- 若无法在第 天内完成所有训练,仅输出一行:。
- 若可以完成,先输出第一行 ,再输出第二行 。
各数之间用单个空格分隔。
输入样例 1
10 5
0 0 0 0 0
1 2 3 2 10
输出样例 1
1 1 1 1 1
10 9 8 9 1
输入样例 2
10 7
0 1 0 3 2 3 0
2 1 6 3 10 4 3
输出样例 2
1 3 1 7 4 7 1
输入样例 3
10 5
0 1 2 3 4
10 10 10 10 10
输出样例 3
1 11 21 31 41
说明
样例 1 解释
五项科目间没有依赖关系,都可以从第 天就开始训练。
天时间恰好可以完成所有科目的训练。
其中科目 耗时仅 天,所以最晚可以拖延到第 天再开始训练;而科目 耗时 天,必须从第 天就开始训练。
样例 2 解释
七项科目间的依赖关系如图所示,其中仅科目 无法在 天内完成训练。
具体来说,科目 依赖科目 、科目 又依赖于科目 ,因此科目 最早可以从第 天开始训练。