CF228E.The Road to Berland is Paved With Good Intentions
普及+/提高
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Berland has n cities, some of them are connected by bidirectional roads. For each road we know whether it is asphalted or not.
The King of Berland Valera II wants to asphalt all roads of Berland, for that he gathered a group of workers. Every day Valera chooses exactly one city and orders the crew to asphalt all roads that come from the city. The valiant crew fulfilled the King's order in a day, then workers went home.
Unfortunately, not everything is as great as Valera II would like. The main part of the group were gastarbeiters — illegal immigrants who are enthusiastic but not exactly good at understanding orders in Berlandian. Therefore, having received orders to asphalt the roads coming from some of the city, the group asphalted all non-asphalted roads coming from the city, and vice versa, took the asphalt from the roads that had it.
Upon learning of this progress, Valera II was very upset, but since it was too late to change anything, he asked you to make a program that determines whether you can in some way asphalt Berlandian roads in at most n days. Help the king.
Berland 有 n 座城市,其中一些城市由双向道路连接。对于每条道路,我们知道它是否已被铺设沥青。
Berland 国王 Valera II 希望将 Berland 的所有道路都铺设上沥青,为此他召集了一支施工队。每天,Valera 恰好选择一座城市,并命令施工队铺设所有从该城市出发的道路。这支勇敢的施工队当天便完成了国王的命令,随后工人们便回家了。
不幸的是,事情并不像 Valera II 所期望的那样顺利。施工队的主力是外来务工人员——一群热情高涨但对 Berland 语指令理解并不十分准确的非法移民。因此,当他们接到“铺设从某城市出发的所有道路”的指令时,实际执行的操作却是:将所有未铺设沥青的道路铺设上沥青,而将所有已铺设沥青的道路的沥青移除。
得知这一进展后,Valera II 非常沮丧;但由于为时已晚、无法更改,他请求你编写一个程序,判断是否能在至多 n 天内,通过某种方式将 Berland 的所有道路全部铺设上沥青。请帮助国王。
输入格式
The first line contains two space-separated integers n, m
— the number of cities and roads in Berland, correspondingly. Next m lines contain the descriptions of roads in Berland: the i-th line contains three space-separated integers a__i, b__i, c__i (1 ≤ a__i, b__i ≤ n; a__i ≠ b__i; 0 ≤ c__i ≤ 1). The first two integers (a__i, b__i) are indexes of the cities that are connected by the i-th road, the third integer (c__i) equals 1, if the road was initially asphalted, and 0 otherwise.
Consider the cities in Berland indexed from 1 to n, and the roads indexed from 1 to m. It is guaranteed that between two Berlandian cities there is not more than one road.
第一行包含两个用空格分隔的整数 n 和 m
,分别表示 Berland 国家的城市数量和道路数量。接下来的 m 行描述 Berland 的道路:第 i 行包含三个用空格分隔的整数 ai,bi,ci(其中 1≤ai,bi≤n;ai=bi;0≤ci≤1)。前两个整数 ai 和 bi 表示第 i 条道路所连接的两座城市的编号,第三个整数 ci 表示该道路初始是否铺设了沥青:若 ci=1,则该道路初始已铺设沥青;若 ci=0,则未铺设。
设 Berland 的城市编号为 1 至 n,道路编号为 1 至 m。保证任意两座 Berland 城市之间至多只有一条道路。
输出格式
In the first line print a single integer x (0 ≤ x ≤ n) — the number of days needed to asphalt all roads. In the second line print x space-separated integers — the indexes of the cities to send the workers to. Print the cities in the order, in which Valera send the workers to asphalt roads. If there are multiple solutions, print any of them.
If there's no way to asphalt all roads, print "Impossible" (without the quotes).
第一行输出一个整数 x(0 ≤ x ≤ n)—— 完成所有道路铺设所需的天数。
第二行输出 x 个用空格分隔的整数—— 派遣工人的城市编号。按瓦莱拉派遣工人铺设道路的顺序输出这些城市编号。若存在多种解法,输出任意一种即可。
若无法铺设所有道路,则输出 "Impossible"(不带引号)。
输入输出样例
输入#1
4 4 1 2 1 2 4 0 4 3 1 3 2 0
输出#1
4 3 2 1 3
输入#2
3 3 1 2 0 2 3 0 3 1 0
输出#2
Impossible
输入解题思路,AI测评打分。不知道怎么写?