CF242D.Dispute

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Valera 有 nn 个计数器,编号从 11 到 nn。其中一些计数器之间通过导线相连,并且每个计数器上都有一个特殊按钮。

最开始,所有计数器上的数值都是 00。当你按下某个计数器的按钮时,该计数器上的值会增加 11,并且所有与它通过导线直接相连的计数器上的值也会各自增加 11。

Valera 和 Ignat 发生了争执,争执的内容如下。Ignat 想到了一个长度为 nn 的整数序列 a1,a2,…,ana_1, a_2, \ldots, a_n。Valera 需要选择一些不重复的计数器,并且每个选中的计数器的按钮只能按一次(其它计数器的按钮不按)。如果此后存在某个编号为 ii 的计数器,其数值恰好为 aia_i,那么 Valera 输掉争执;否则,Valera 获胜。

请你帮助 Valera 确定需要按哪些计数器的按钮,才能赢得争执。

输入格式

第一行包含两个用空格分隔的整数 nn 和 mm,分别表示 Valera 有的计数器数量和通过导线相连的计数器对的数量,满足 1≤n,m≤1051 \leq n, m \leq 10^5。

接下来的 mm 行,每行包含两个用空格分隔的整数 uiu_i 和 viv_i,表示编号 uiu_i 和 viv_i 的计数器之间有一根导线连接,满足 1≤ui,vi≤n1 \leq u_i, v_i \leq n,ui≠viu_i \ne v_i。保证每一对连接的计数器在输入中只出现一次。

最后一行包含 nn 个用空格分隔的整数 a1,a2,…,ana_1, a_2, \ldots, a_n,其中 0≤ai≤1050 \leq a_i \leq 10^5,aia_i 是 Ignat 为第 ii 个计数器选择的值。

输出格式

如果 Valera 无法赢得争执,第一行输出 −1-1。

否则,第一行输出一个整数 kk(0≤k≤n0 \leq k \leq n),表示应当按下按钮的计数器数量。第二行输出 kk 个不重复的计数器编号,顺序任意,表示 Valera 应该按下按钮的计数器编号。

如果存在多种解法,你可以输出其中任意一种。

输入输出样例

  • 输入#1

    5 5
    2 3
    4 1
    1 5
    5 3
    2 1
    1 1 2 0 2
    

    输出#1

    2
    1 2
    
  • 输入#2

    4 2
    1 2
    3 4
    0 0 0 0
    

    输出#2

    3
    1 3 4
    

说明/提示

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页