How would I structure this program? A bit unsure of what is being asked

You are required to write a software application that manages an international outdoor car rally for thirty-two (32) cars. Thirty-two countries around the globe have a single representative team to this tournament. For each race, four cars compete per race. The best 16 race times goes forward to the second round, and the best 8 to the third round and the best 4 to the finals. Each country has a team of two navigators and three drivers. One driver per team can drive no more than once, that is each team must have a new driver for each round, but navigators are the one who suffer if the team times are low. A team that progresses to the final round can chose any driver. Therefore a team may use only one navigator or may use both. The rule of thumb is that if the car placing in a particular race is last, then the navigator is not given the chance to race again.

Your solution may use the following ADTs but must show evidence of the bolded ones:

• Classes.

• Array(s).

• A sorting algorithm of your choice to output the final list of participant sorted in order of tournament placing.

• A queue or stack structure to manage the race. Hint used predefined class!

• Linked list can be used. Their use in this solution set is intuitive.

You will need to use the Math object to generate a random number. In most races, times are lowered as you progress to the rounds. Therefore for the first race, your times may average 45-50 seconds, your second round times of 40-45 seconds, and your semifinal stage times of 39-42 second and the finals 37-40 seconds.

For examples your race time for second car in a Round One race may be assigned as follows

secondCar = 45 + Math.rnd() + RoundOneOffset ;