Write a program that performs the following actions: A. Building an array containing 300 random numbers. B. Building a maximum heap (by implementing an array) from the array obtained in section A. C. Write an algorithm that receives a heap of size n and number k (it is possible to assume k<<n) and prints the k largest numbers.
Constraints: O(klogk) required efficiency, don't change the heap, the structure can be used O(k) sized helper.