Write a C++ program that implements a priority queue using a heap. The program must perform the following steps: 1. Generate 10 random numbers and form a heap with them. Also, each number must be written to an output file in the order they are generated, pre-fixed with "A:". 2. Iterate through a loop 10 times. For each iteration: a. Print a comment to the output file indicating the iteration number. b. Print the root node value to the output file prefixed with "D:", and remove the node from the heap. c. Generate a new random number and insert it into the heap. Print the value to the output file prefixed with "A:". What I used to get a random number is: #include #include srand( (unsigned)time( NULL ) ); // initialize random number generator r = rand(); // get a random number An example of an output file would be as follows: A:170 A:409 A:408 A:406 A:341 A:859 A:760 A:492 A:319 A:338 Iteration 1 D:859 A:781 Iteration 2 D:781 A:982 Iteration 3 D:982 A:599 Iteration 4 D:760 A:787 Iteration 5 D:787 A:111 Iteration 6 D:599 A:560 Iteration 7 D:560 A:896 Iteration 8 D:896 A:619 Iteration 9 D:619 A:243 Iteration 10 D:492 A:597