Baltic OI '17 P3 - Railway

View as PDF

Submit solution

Points: 17 (partial)
Time limit: 1.0s
Memory limit: 1G

Problem types
Allowed languages
Ada, Assembly, Awk, Brain****, C, C#, C++, COBOL, CommonLisp, D, Dart, F#, Forth, Fortran, Go, Groovy, Haskell, Intercal, Java, JS, Kotlin, Lisp, Lua, Nim, ObjC, OCaml, Octave, Pascal, Perl, PHP, Pike, Prolog, Python, Racket, Ruby, Rust, Scala, Scheme, Sed, Swift, TCL, Text, Turing, VB, Zig
Baltic Olympiad in Informatics: 2017 Day 1, Problem 3

A couple of years ago the Bergen Ministry of Infrastructure prepared a plan for a new light railway network. This network was supposed to connect all n neighbourhoods in the city with n-1 railway tracks in such a way, that there would be a path from every neighbourhood to every other neighbourhood. The planned tracks are identified by numbers from 1 to n-1.

Years passed, new elections are approaching, and the railway network still exists only on paper. Therefore the Minister of Infrastructure (representing a party holding disagreement in high regard) decided to construct at least some part of the plan. He asked each of his m deputy ministers to choose which neighbourhoods they thought should be connected. That will result in a list of necessary tracks for each deputy minister. If a deputy minister thinks that the neighbourhoods a_1, \ldots, a_s need to be connected, then according to him or her, the necessary tracks are all those which lie on planned paths from a_i to a_j for some 1 \le i < j \le s. The minister just received all lists from the deputy ministers. He decided to construct in the first place the tracks which are requested by at least k deputy ministers.

Your task is to prepare a list of these tracks.

Input Specification

In the first line of the input there are three integers n, m and k. The next n-1 lines contain the plan; in the i-th of these lines there are two integers a_i and b_i (1 \le a_i, b_i \le n, a_i \neq b_i), specifying that the i-th track on the plan is between neighbourhoods a_i and b_i.

In the next m lines there are neighbourhoods chosen by deputy ministers; the i-th of these lines begins with an integer s_i which specify the number of neighbourhoods chosen by the i-th deputy minister. After it there are s_i integers specifying these neighbourhoods. The total length of all lists of deputy ministers is at most S, i.e. \sum^m_{i=1} s_i \le S.

Constraints

We always have 2 \le s_i \le n \le 100\,000, S \le 100\,000, and 1 \le k \le m \le 50\,000. For subcases, the inputs have these further restrictions:

  • Group 1: 8 points n \le 10\,000, S \le 2\,000,
  • Group 2: 15 points n \le 10\,000, m \le 2\,000,
  • Group 3: 7 points Every neighbourhood is the endpoint of at most 2 planned tracks.
  • Group 4: 29 points k=m, s_i= 2,
  • Group 5: 16 points k=m,
  • Group 6: 25 points No further restrictions.

Output Specification

In the first line of the output you should write one integer r, specifying the number of tracks which are requested by at least k deputy ministers. In the second line you should write r identifiers of these tracks in ascending order.

Sample Input

6 3 2
1 3
2 3
3 4
6 4
4 5
4 1 3 2 5
2 6 3
2 3 2

Sample Output

2
2 3

Explanation of Sample Output

The first deputy minister thinks that tracks 1–3, 2–3, 3–4 and 4–5 are necessary. The second deputy minister considers tracks 3–4 and 4–6, and the third one only track 2–3. Tracks 2–3 and 3–4 are necessary according to at least two deputy ministers.


Comments

There are no comments at the moment.