0.SM. Balanced Courses Assignment
At the beginning of the semester, the head of a computer science department D have to assign courses
to teachers in a balanced way. The department D has m teachers T = {1; 2; ... ;m} and n courses
C = {1; 2; ... ; n}. Each teacher
be assigned to the same teacher as these courses have been already scheduled in the same slot of the timetable. The load of a teacher is the number of courses assigned to her/him. How to assign n courses to m teacher such that each course assigned to a teacher is in his/her preference list, no two con icting
courses are assigned to the same teacher, and the maximal load is minimal.
Input
The input consists of following lines
- Line 1: contains two integer m and n (1 <= m <= 10, 1 <= n <= 30)
- Line i+1: contains an positive integer k and k positive integers indicating the courses that teacher i can teach (all i = 1; ....;m)
- Line m + 2: contains an integer k
- Line i + m + 2: contains two integer i and j indicating two con icting courses (alli = 1;......,k)
Output
The output contains a unique number which is the maximal load of the teachers in the solution found and the value -1 if not solution found.
Example
Input
4 12
5 1 3 5 10 12
5 9 3 4 8 12
6 1 2 3 4 9 7
7 1 2 3 5 6 10 11
25
1 2
1 3
1 5
2 4
2 5
2 6
3 5
3 7
3 10
4 6
4 9
5 6
5 7
5 8
6 8
6 9
7 8
7 10
7 11
8 9
8 11
8 12
9 12
10 11
11 12
Ouput
3
Comments