Problem 1 [25 points]A company is planning a party for its employees. The organizers of the party want it to be afun party, so they have assigned a â??funâ?? rating to every employee (for any employee x, xâ??s funrating is denoted by fun(x)) and are planning to invite employees that will maximize fun.The employees at the company are organized into a strict hierarchy, which is encoded as atree T rooted at the president root(T) of the company. Each node is an immediate supervisorof its children. However, there is a restriction: An employee and his immediate supervisor(his parent in the tree) cannot both attend, because otherwise there would be no fun at all.a) Give an algorithm that makes a guest list for the party that maximizes the sum ofâ??funâ?? ratings of the guests. Denoting the total number of company employees by n,your function should have O(n) time complexity. Show the pseudocode, argue that youralgorithms is correct, and argue that its complexity is indeed O(n). Again, make surethat for any guest, the guestâ??s immediate supervisor does not attend (and at the sametime, that the overall fun rating of guests is maximized).b) How would you modify your algorithm to always select the president of the company(regardless of his fun rating or the consequences on the overall amount of fun we canachieve)? How would the time complexity change? Show the modification of the pseu-docode, argue that your modification solves this part correctly, and explain what thenew time complexity is.