40 const auto proto_status =
42 if (!proto_status.ok()) {
43 LOG(ERROR) << proto_status.message();
53 LOG(INFO) <<
"Solver result status: "
58 const int course_index = class_assignment.course_index();
59 const int section_number = class_assignment.section_number();
61 int teacher_index = 0;
64 for (
int section_index = 0;
68 if (section_number < sections) {
75 LOG(INFO) <<
" Section: " << section_number;
76 LOG(INFO) <<
" Teacher: " <<
input.teachers(teacher_index).display_name();
77 for (
int i = 0; i < class_assignment.time_slots_size(); ++i) {
78 if (
input.rooms_size() > 0) {
80 <<
" Scheduled for time slot " << class_assignment.time_slots(i)
82 <<
input.rooms(class_assignment.room_indices(i)).display_name();
84 LOG(INFO) <<
" Scheduled for time slot "
85 << class_assignment.time_slots(i);
92 const int student_index = student_assignment.student_index();
94 LOG(INFO) <<
input.students(student_index).display_name();
95 for (
int i = 0; i < student_assignment.course_indices_size(); ++i) {
98 <<
input.courses(student_assignment.course_indices(i)).display_name()
99 <<
" " << student_assignment.section_indices(i);
103 LOG(INFO) <<
"Solved model in " << timer.
GetDuration();
ABSL_FLAG(std::string, input, "", "Input file containing a CourseSchedulingModel in text format.")