NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

Skr has a lovely home with a rather exquisite garden. In his garden, Skr has many apple trees. It is almost summer time, and the apples are about to mature, but being the impatient type, Skr does not want to wait for the apples to fall from the trees. That is why, he decides to throw tiny pebblestones to the trees in order to cause the apples to fall.

All the trees in Skr's garden has a structure similar to the tree data structure he sees frequently in the competitive programming contests he enters. The root node is located at the ground level, and every separation of branches indicate a node. Unlike ordinary apple trees, the apples on the trees in Skr's garden are strictly located at the nodes, and there are no apples on the branches of any tree. Note that the trees in Skr's garden do not have to be balanced.

Skr wants to throw pebblestones at the nodes of his trees, so that some of the apples fall. He is an excellent shot, so he will never miss. When he throws a stone to a node j, all the apples within the subtree rooted at j will fall down.

Skr has only K stones, and you are asked to help him compute the maximum amount of apples he can collect, given the structure of his trees.

Input:
The first line of the input indicate the numbers N, M and K. N represents the total number of nodes in the gardenm and M represents the total number of edges (i.e. branches) between those nodes. K is the number of pebblestones Skr has.

On the following line, there are N integers representing the number of apples on the nodes. The i<sup>th</sup> integer represents the number of apples on node with index i.

Each of the following M lines feature integers u and v, indicating that there is an edge from node with index u to node with index v.

It is guaranteed that the structure provided will be a forest with single or multiple trees.

Output:
Print the maximum number of apples Skr can collect from his garden.

Bounds:
N <= 1,000,000
M <= 1,000,000
K <= 1,000,000
1 <= u, v <= N


Solution:
O(V + E) => Find roots (ones with 0 incoming edges)
O(V + E) => DFS to find out the number of apples in each subtree

O(K * logV + V log V) => Priority queue to select K elements (K * logV)
When an element is selected, remove all of its subtree from the priority queue (V * logV)
     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.