#1440. 航班延误
航班延误
航班延误
题目描述
目前机场有趟被延误航班,编号为至。机场只有一条起飞跑道,所有的航班需按某个顺序依次起飞(称这个顺序为起飞序列)。定义一个航班的起飞时间为该航班在起飞序列中的位置,即是第几个起飞的航班。
起飞序列必须满足以下条件:
- 限制一:编号为的航班起飞时间不得超过。
- 限制二:存在一些相对起飞顺序限制,表示航班必须在航班之前起飞。
有两个问题:
- 在考虑两类限制条件的情况下,是否可以计算出一个可行的起飞序列。
- 在考虑两类限制条件的情况下,如何求出每个航班在所有可行的起飞序列中的最小起飞时间。
输入格式
第一行包含两个正整数和,表示限制二的数目。
第二行包含个正整数。
接下来行,每行两个正整数和,表示一对限制二,其中。
输出格式
第一行包含个整数,表示一个可行的起飞序列,相邻两个整数用空格分隔。输入数据保证至少存在一个可行的起飞序列。如果存在多个可行的方案,输出任意一个即可。
第二行包含个整数,其中表示航班可能的最小起飞时间,相邻两个整数用空格分隔。
数据范围与提示
- 对于的数据,满足;
- 对于的数据,满足;
- 对于的数据,满足,。
样例
5 5
4 5 2 5 4
1 2
3 2
5 1
3 4
3 1
3 5 1 4 2
3 4 1 2 1
5 0
3 3 3 5 5
3 2 1 5 4
1 1 1 4 4
见airport3.in
见airport3.out