#P15535. [nordic2021]The Elk

[nordic2021]The Elk

题目描述

你在一片森林里。森林中还有一对驼鹿:一只成年雌鹿和它的幼鹿。众所周知,站在雌鹿和幼鹿之间是很危险的,但有时候并不容易判断哪些地方安全。

将森林建模为一个无向图。图中有 NN 个地点和 MM 条双向连接,地点编号为 00N1N-1,连接编号为 00M1M-1

一条从雌鹿到幼鹿的路径定义为一串地点

p0,p1,p2,,pkp_0,p_1,p_2,\ldots,p_k

满足:

  1. p0p_0 是雌鹿所在地点;
  2. pkp_k 是幼鹿所在地点;
  3. 对于每个 0i<k0\le i<kpip_ipi+1p_{i+1} 之间存在一条直接连接;
  4. 路径中使用的边不能重复。注意:地点可以重复出现。

如果某个地点出现在任意一条这样的路径上,那么这个地点就是危险的,因为雌鹿可能会认为你处在它和幼鹿之间。

请找出所有安全地点,即不出现在任何一条从雌鹿到幼鹿、且不重复使用边的路径上的地点。

输入格式

第一行包含四个整数 N,M,A,BN,M,A,B,分别表示地点数、连接数、雌鹿所在地点和幼鹿所在地点。

接下来 MM 行,第 ii 行包含两个整数 Ui,ViU_i,V_i,表示第 ii 条连接连接地点 UiU_iViV_i

输出格式

第一行输出一个整数 SS,表示安全地点数量。

接下来 SS 行,每行输出一个安全地点编号,要求按编号从小到大输出。

数据范围

  • 2N5×1042\le N\le 5\times 10^4
  • 2M1052\le M\le 10^5
  • 0Ui,Vi<N0\le U_i,V_i<N
  • 0A,B<N0\le A,B<N
  • UiViU_i\ne V_i
  • 任意两个地点之间至多有一条直接连接。
  • 保证至少存在一条从 AABB 的路径。

子任务

子任务 分值 限制
1 10 N10,M45N\le 10, M\le 45
2 20 M=N1M=N-1 且图连通
3 30 N200,M500N\le 200, M\le 500
4 40 无额外限制