Code in c++ language please use all the priority queue classes. I made a priority queue class. I also provided the test file to check if it works. Make sure it passes all the tests. The output should look like thisuser enter
1 departing false 1
0 2 departing false 1
0 3 departing false 1
0 4 arriving false 3
output is --->
Time step 0
Entering simulation
0 1 departing false 1
0 2 departing false 1
0 3 departing false 1
0 4 arriving false 3
Runway A
0 1 departing false 1
Runway B
0 4 arriving false 3
Time step 1
Entering simulation
Runway A
0 2 departing false 1
Runway B
0 3 departing false 1
use test file to check the outputs and input.
CSCI 311 - Algorithms and Data Structures Project 2 CSCI 311 - Algorithms and Data Structures Project 2 March 10, 2022 In this project, we will simulate takeoffs and landings at a small airport. As in the first project, there is very little direction regarding how to design or structure your code. These decisions are mostly left to you. Make sure to start early and to stay organized. This project is worth a total of 200 points. C++ code for this project should be submitted on Blackboard and turnin. The project is due before April 24th at 11:59 pm. All code and tests should be included in a .zip file called Project2. Your main should be written in a file called AirportDriver.cpp. You may, and I recommend that you do, include additional files to help organize your code. Remember, coding style and comments matter. Poor style or a lack of comments may cost you points! There will be time in lab to discuss these problems in small groups and I highly encourage you to collab- orate with one another outside of class. However, you must write up your own solutions independently of one another. Feel free to communicate via Discord and to post questions on the appropriate forum in Blackboard. Do not post solutions. Also, please include a list of the people you work with in a comment at the top of your submission. Good luck! 1 The Simulation Our goal is to simulate takeoffs and landings at a small airport with two runways, A and B. Aircraft will arrive at or leave from the airport at discrete time steps. More than one aircraft may enter the simulation at each step but only one aircraft may use each of the runways at a time. Each aircraft will have a time at which it enters the simulation, an ID, an indication as to whether it is departing from or arriving at the airport, an indication as to whether or not an emergency takeoff or landing is required, and a priority. Aircraft should be dealt with in the order defined first by their priority, then by the time at which they enter the simulation, and finally by their ID. Emergencies have top priority and are dealt with in the order in which they become emergencies. If an aircraft is waiting for more than 10 time steps, it becomes an emergency. Runway A should prioritize takeoffs while runway B should prioritize landings. In particular, unless there is an emergency situation or there are no aircraft waiting to takeoff, runway A should only be used for departing aircraft. Similarly, unless there is an emergency situation or there are no aircraft waiting to land, runway B should only be used for arriving aircraft. Emergencies should try to use runway A before runway B. 1 https://turnin.ecst.csuchico.edu/ https://discord.gg/dNU8Ty6apz https://learn.csuchico.edu/webapps/blackboard/content/listContentEditable.jsp?content_id=_4935228_1&course_id=_162050_1 At each time step, 1. Add any new aircraft to the simulation 2. Perform actions for runways A and B 3. Update priorities 4. Increment time It is possible for an aircraft to enter the simulation and leave (takeoff or land) in the same time step. 2 Input and Output Your program should read input from cin. This is intended to allow you to enter test cases by hand or by providing a file as input directly from the terminal. For example, suppose you compile your program to a.out and that you have a file named “test 1.in”. Then running ./a.out < test_1.in="" will="" run="" your="" program="" using="" the="" lines="" of="" “test="" 1.in”="" as="" input.="" i="" highly="" recommend="" that="" you="" use="" this="" approach="" to="" help="" save="" tests="" and="" time.="" the="" first="" line="" of="" input="" contains="" a="" single="" integer="" n="" indicating="" the="" number="" of="" aircraft="" that="" will="" arrive="" at="" or="" depart="" from="" the="" airport="" in="" the="" simulation.="" the="" following="" n="" lines="" each="" contain="" information="" for="" a="" single="" aircraft="" entering="" the="" simulation.="" in="" particular,="" each="" aircraft="" will="" include="" 1.="" a="" time="" at="" which="" it="" enters="" the="" simulation="" (int,="" non-negative)="" 2.="" an="" id="" (int,="" unique)="" 3.="" an="" indication="" as="" to="" whether="" it="" is="" departing="" or="" arriving="" at="" the="" airport="" (string,="" either="" “departing”="" or="" “arriving”)="" 4.="" an="" indication="" as="" to="" whether="" or="" not="" an="" emergency="" takeoff="" or="" landing="" is="" required="" (bool,="" “true”="" or="" “false”)="" 5.="" a="" priority="" (int)="" separated="" by="" spaces.="" you="" can="" assume="" that="" this="" information="" is="" in="" sorted="" order="" with="" respect="" to="" the="" times="" that="" the="" aircraft="" enter="" the="" simulation.="" if="" two="" or="" more="" aircraft="" enter="" the="" simulation="" at="" the="" same="" time,="" they="" should="" be="" considered="" in="" the="" order="" in="" which="" they="" are="" given.="" at="" each="" time="" step="" where="" something="" happens,="" your="" program="" should="" print="" information="" to="" the="" screen.="" specifically,="" output="" should="" be="" organized="" as="" follows:="" 2="" time="">