CF949C Data Center Maintenance
题目描述
给出 $n$ 个数据中心,$m$ 份资料。要把 $m$ 份资料放到其中的两个数据中心备份,需要保证任意时刻都可以至少在一个数据中心进行备份。定义一天有 $h$ 个小时,每个数据中心在一天内有一小时维护时间 $u_i$($0 \leq u_i < h$),在这一小时内该数据中心无法进行备份。
由于某种原因,需要把一些数据中心的维护时间向后推迟 1 小时(一个数据中心的维护时间的向后推迟可能导致有的资料无法在任意时刻进行备份 且 若推迟前 $u_i = h - 1$ 那么推迟后 $u_i = 0$),请你求出最少需要向后推迟多少个数据中心,并把这些数据中心的编号输出出来。
输入格式
第一行 3 个整数 $n$,$m$,$h$,含义如上。
第二行 $n$ 个整数,为 $u_1$ 到 $u_n$。
接下来 $m$ 行,每行 2 个整数$c_1$,$c_2$($u_{c_1} \neq u_{c_2}$),分别表示第 $i$ 份资料可以在哪两个数据中心进行备份。
**注意:输入的 $u_{c_1} \ne u_{c_2}$,意味着刚开始时任意资料都可以在任意时间进行备份。**
输出格式
第一行 1 个整数 $k$,表示最少需要推迟 $k$ 个数据中心。
第二行 $k$ 个整数,分别为 $x_1$ 到 $x_k$,表示需要推迟的数据中心的编号。
说明/提示
$2\le n,h\le 10^5,1\le m\le 10^5$