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.