$30.00
Description
Goals:

Understanding of the dynamic programming solution to the (one room) weighted interval scheduling problem.

Understanding of the five steps for developing a dynamic programming solution.
Requirements:

Your task is to write a C program to solve the two room weighted interval scheduling problem by using dynamic programming. The first line of the input will be the number of intervals (n) and each of the remaining n lines have three
nonnegative integers ( s_{i}, f_{i} , v_{i}) for the start time, finish time, and weight for an interval. The intervals will be ordered by ascending finish time. You should echo the input.

Submit your C program on Blackboard by 1:45 p.m. on October 19. One of the comment lines should include the compilation command used on OMEGA.
Getting Started:

The input should be read from standard input (which will be one of 1. keyboard typing, 2. a shell redirect (<) from a file, or 3. cutandpaste). Do NOT prompt for a file name!.

Your solution must use dynamic programming to maximize the total weight of the intervals assigned to the two rooms.
The intervals assigned to a room may not overlap (two intervals i and j overlap if either s_{i} < s _{j} < f_{i} or s_{i} < f _{j} < f_{i}.).

Applying the simple (one room) solution in Notes 7.B to get a maximum solution for one room and then applying again the same technique to the leftover intervals (to assign intervals to the second room) is a nonoptimal greedy technique.

3
3
1
1
1
1
5
7
9
1
1
2
2
2
1
2
4
6
8
10

n will not exceed 50.

You should print your dynamic programming table(s) with appropriate labeling.

Your solution should be formatted as:


A line with just the number of intervals assigned to the first room.



A line for each of the intervals assigned to the first room: start time, finish time, weight.

A line with just the number of intervals assigned to the second room.

A line for each of the intervals assigned to the second room: start time, finish time, weight.



A line with the total weight that has been achieved

and appear at the end of your output. No particular ordering of the intervals is required.