时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld
题目描述
本学期的阳光跑刚好在今天结束,Bezime 刚好差一次达标。今天,TGSTY 打算蹲点捕捉 Bezime 会在哪里跑完阳光跑。
校园内的地形可以简化为

个节点,

条边的有向图
1,节点编号为

,每条边的长度均为

个单位长度(不一定连通
2,可能有重边
3与自环
4)。
Bezime 将从某个节点出发,然后跑固定的距离,最终停在某个节点。
由于有向图可能存在死路,导致阳光跑可能因为距离不够而跑步失败,因此 Bezime 不会往完不成阳光跑的地方跑。
TGSTY 有

次猜想,你需要帮忙回答问题:
每次 TGSTY 会猜测如果 Bezime 从

号节点出发,阳光跑要求跑

个单位长度,那么他可能会在哪些节点结束阳光跑。
-
输出节点个数
,并按顺序输出这些节点的编号;
-
特殊的,如果从
号节点出发不可能完成阳光跑,那么输出一个
即可。
有向图
1:由一些点与一些边组成,边的方向是单向的,这样的一条边只能沿着边的方向行走,无法从此边返回。
连通
2:图内所有点之间都有边直接或间接相连,不考虑边的方向。
重边
3:同一对顶点之间方向相同的两条或以上边。
自环
4:自环是出发点与到达点相同的边。
输入描述:
第一行三个整数
。
接下来
行,每行两个正整数
,代表有一条单向边,方向为从
号节点指向
号节点,长度均为
。
接下来
行,每行两个正整数
,代表询问的出发节点与跑步距离。
输出描述:
输出共
行,对应每个询问:
对于每行,开头输出一个整数
,代表可能的终点个数,接下来从小到大输出
个正整数,表示节点的编号;
若不存在这样的节点,只输出一个
即可。
示例1
输入
复制
4 3 3
1 2
2 3
3 4
1 2
2 2
3 2
示例2
输入
复制
4 5 3
1 2
2 3
3 4
4 1
1 3
1 2
2 2
4 10