#P14900. [OOI2016预选赛long]Дураки и дороги傻瓜与道路
[OOI2016预选赛long]Дураки и дороги傻瓜与道路
题目描述
众所周知,贝尔兰德正好有两个问题,而道路就是其中之一。
根据学校地理课你应该知道,贝尔兰德正好有 座城市和 条双向道路。坦率地说,其中一些道路状况十分糟糕。
为了维护道路质量,政府宣布其中一些道路改为收费道路。每条收费道路由 家公司中的一家维护,该公司负责及时修路(也负责收取过路费)。
贝尔兰德不仅有两个问题,还有两座首都。它们位于不同纬度,因此一座被称为北方首都,另一座被称为南方首都。关于哪座首都更重要的争论已经持续多年,但对公司而言,重要的不是谁更重要,而是这两座城市之间集中了主要的汽车交通流量。
贝尔兰德反垄断部门怀疑道路分配并不公平:可能存在一条从北方首都到南方首都的路径,使得某家公司在这条路径上没有任何一条道路。反垄断部门认为这会造成不健康的竞争,需要避免这样的情况;但首先必须找出所有遭受这种不公平的公司。这个艰巨任务被交给了你。
如果存在某条两首都之间的路径,其上没有任何道路由公司 维护,则称公司 是被亏待的。请输出所有被亏待公司的编号。
输入格式
第一行包含三个整数 (,),分别表示城市数、道路数和公司数。
接下来 行描述道路。第 行包含三个整数 (,),表示第 条道路连接城市 与 ,并由编号为 的公司维护。其中 表示该道路仍然免费,不属于任何公司。
最后一行包含两个整数 (,),表示北方首都和南方首都的城市编号。
保证没有道路连接一座城市自身,并且任意两座城市之间至多有一条道路。
输出格式
第一行输出被亏待公司的数量。
第二行按升序输出所有被亏待公司的编号。
样例
样例 1
4 5 2
1 2 1
1 3 2
2 4 2
3 4 1
2 3 0
1 4
2
1 2
样例 2
4 4 2
1 2 1
1 3 2
2 4 2
3 4 1
1 4
0
样例解释

在第一个样例中,存在路径 ,其上只有第一家公司维护的道路(图中红色)和免费道路(黑色),没有第二家公司的道路;也存在路径 ,其上只有第二家公司维护的道路(蓝色)和免费道路。
在第二个样例中,从城市 到城市 只有两条路径: 和 。两条路径上都包含两家公司的道路。
评分方式
测试由四组组成。只有通过某一组的所有测试以及所有前置测试组时,才能获得该组分数。Offline 检查表示该组的测试结果只会在比赛结束后公布。
| 组别 | 测试点 | 分数 | 附加限制 | 附加限制 | 附加限制 | 说明 |
|---|---|---|---|---|---|---|
| 0 | 1–2 | 0 | — | 样例测试 | ||
| 1 | 3–32 | 30 | ||||
| 2 | 33–57 | |||||
| 3 | 58– | 40 | — | Offline 检查 | ||