Waterloo 2022 Fall D - Course Selection
View as PDF2022 Fall Waterloo Local Contest, Problem D
The University of Wonderfulness has accidentally admitted more students than it has the capacity to teach. Unfortunately, this means that some of its courses may be full and some students might not be able to take the courses that they would like. Can you help the university manage the situation?
Each student has selected  courses that they would like to take. Each course has a hard limit on the
number of students that can take it. Your task is to enroll each student into as many of their 
 selected
courses as possible while respecting the course limits.
The happiness level of a student is the number of courses that they are enrolled in. If they can enroll in
all  of their selected courses, their happiness level is 
. If two of their selected courses are full and they
can enroll in only 
 of their 
 selected courses, their happiness level is only 
. The university wishes to
maximize the sum of the happiness levels of all the students.
The objective can be phrased in a different but equivalent way. Each student pays  in tuition for
each course that they are enrolled in. A student with all 
 of their selected courses pays 
. A student
enrolled in only 
 of their 
 selected courses pays 
. The university wishes to maximize the total
amount of tuition it can collect.
Your task is to assign students to courses while respecting the constraints and maximizing the total happiness level of the students and the total amount of tuition collected.
Input Specification
The first line of input contains two integers separated by a space, , the number of courses,
and 
, the number of students. It is followed by 
 lines, the 
 such line containing a single
integer 
, the maximum number of students that can be enrolled in the 
 course. These 
lines are followed by 
 more lines, one for each student. Each of these 
 lines contains five distinct integers
separated by spaces, the five courses that the student would like to take. Each of these course numbers
is an integer 
, corresponding to the course whose limit 
 was given on the 
 of the 
 lines
following the first line of input.
Output Specification
The first line of output should contain a single integer, the maximum sum of the happiness levels that can
be achieved. This first line of output should be followed by  more lines, one for each student, in the same
order as in the input. Each of these lines should contain between 
 and 
 integers separated by spaces,
the course numbers 
 of the courses that the student is enrolled in to achieve the maximum sum
of happiness levels on the first line of output.
If there are multiple assignments of courses to students that achieve the same maximum sum of happiness levels, you may output any one of those assignments and it will be considered correct.
Sample Input
6 3
1
1
1
1
1
1
1 2 3 4 5
1 2 3 4 5
1 2 3 4 6
Sample Output
6
1 2 3 4 5
6
Note
The original problem did not have a sample.
Comments