0 人解决,1 人已尝试。
0 份提交通过,共有 3 份提交。
9.9 EMB 奖励。
单点时限: 2.0 sec
内存限制: 256 MB
Witnesses, numbered from 1 to n, have made their testimonies in a court. Each testimony is a statement of the form: “the i-th witness agrees with the j-th witness” or “the i-th witness does not agree with the j-th witness”.
If the i-th witness agrees with the j-th witness then he agrees also with all the witnesses that the j-th witness agrees with. Similarly, the i-th witness does not agree with all the witnesses that the j-th witness does not agree with.
We say that witness A is not credible if from testimonies made in a court it follows that there exists a witness B such that A agrees with B and A does not agree with B.
Write a program that:
reads the number of witness and their testimonies,
finds all the witnesses that are not credible,
writes the result.
In the first line there is a single integer n, 1 <= n <= 3000, which is the number of witnesses.
In the second line there is a single integer m, 0 <= m <= 8000, which is the number of testimonies.
In each of the following m lines there are two integers i, j (1 <= i <= n, 1 <= |j| <= n), separated by a single space. If j is positive it describes a testimony: “the i-th witness agrees with the j-th witness”. If j is negative it means: “the i-th witness does not agree with the (-j)-th witness”.
There should be written:
a single word NIKT (which means NOBODY in Polish), if it follows from testimonies that there is no witness that is not credible,
or - in increasing order - the numbers of witnesses that are not credible (one member in one line).
6 12 1 3 1 6 2 -1 3 4 4 1 4 -2 4 5 5 -1 5 -3 5 2 6 5 6 4
1 3 4 6
0 人解决,1 人已尝试。
0 份提交通过,共有 3 份提交。
9.9 EMB 奖励。