In the event of technical difficulties with Szkopuł, please contact us via email at [email protected].
If you would like to talk about tasks, solutions or technical problems, please visit our Discord servers. They are moderated by the community, but members of the support team are also active there.
King Byteasar had hidden a treasure in his castle, and he kept his hiding place in secret. However, whenever he went to war he was afraid he could die and the treasure would get lost. Therefore he chose trustworthy guards and confided partial information needed to find the treasure to each of them. Next he ordered them to go to the underground vaults that lie under the castle and to walk there using the right-hand rule. The vaults were connected by corridors. The corridors did not cross outside the vaults but they could run under other corridors. There were no corridors leading to the same vault they led off. The right-hand rule stated that a guard after entering a vault left it by the next corridor to the right. The guards were appointed different starting positions at entrances to corridors. It might happen that many guards started from the same vault, unless they were entering the same corridor.
The king knew that until he fell or returned from war all guards would loyally follow his orders. However, he was aware that whenever any two or more guards met in some vault they could not resist sharing all the information they knew about the treasure. The guards were not selfish and they shared information even if some of them would not learnt anything new. If some guards started from the same vault they immediately shared the information they initially knew. If they passed one another in corridors, however, they did not talk.
The king pondered if the treasure would still be secure when he safely returned from war. He wanted to know which guards might obtain all the information needed to find the treasure.
Write a program which:
In the first line of the standard input there is one integer . That
is the number of the underground vaults,
. The
vaults are numbered from
to
. In the following
lines corridors connecting the vaults are described. In the
-st line the corridors leading off the
-th vault are
described in clockwise order. In each of those lines there are integers
separated by single spaces. The first of those numbers,
, is the
number of corridors leading off the
-th vault,
. It is followed, in the same line, by
integers: each
leading off corridor is described by two integers. The former is the number of
the vault the corridor leads to, and the latter is the length of the corridor:
an integer in the range from 1 to 100. The corridors are two-way, i.e. if from a
vault
a corridor of length
leads to a vault
then from the vault
a corridor of length
leads to the vault
. Each pair of vaults may be connected by at most
one corridor. A guard to walk along a corridor needs exactly the amount of time
that is equal to the length of that corridor. We assume the time guards spend in
vaults negligible.
In the -nd line there are written two integers
and
,
,
,
where
is the number of guards, and
is the number of
pieces of information needed to find the treasure. The guards are numbered from
to
. The pieces of information concerning the treasure
are numbered from
to
. The guards are described in the
following
lines (the
-th guard is described in the
-nd line). Each of those lines consists of integers
separated by single spaces. The first integer in a line is the number of the
vault the corresponding guard starts from. The second number is the number of
the vault the guard goes to first. The third number,
, is the
number of pieces of information concerning the treasure the
-th
guard initially knows,
. The following
integers in the line are the numbers of the pieces of information
initially known to the
-th guard.
In the first line of the standard output your program should write one integer: the number of guards who could ever know all the information needed to find the treasure. In the following lines there should be written the numbers of those guards in ascending order, one number per line.
For the input data:
4 3 2 3 3 4 4 1 2 1 3 3 1 3 4 3 1 4 2 1 2 1 1 3 3 3 4 1 4 2 2 3 3 1 2 1 2 3 4 2 3 4
the correct result is:
2 2 3
Task author: Adam Borowski.