// We decided to drop the legend about the power sockets but feel free to come up with your own :^)
Define a chain:
You are given $$$n$$$ chains of lengths $$$l_1, l_2, \dots, l_n$$$. You plan to build a tree using some of them.
The distance between two vertices of the tree is the number of edges on the shortest path between them.
If there is at least $$$k$$$ white vertices in the resulting tree, then the value of the tree is the distance between the root and the $$$k$$$-th closest white vertex.
What's the minimum value of the tree you can obtain? If there is no way to build a tree with at least $$$k$$$ white vertices, then print -1.
The first line contains two integers $$$n$$$ and $$$k$$$ ($$$1 \le n \le 2 \cdot 10^5$$$, $$$2 \le k \le 10^9$$$) — the number of chains and the minimum number of white vertices a tree should have to have a value.
The second line contains $$$n$$$ integers $$$l_1, l_2, \dots, l_n$$$ ($$$3 \le l_i \le 2 \cdot 10^5$$$) — the lengths of the chains.
Print a single integer. If there is no way to build a tree with at least $$$k$$$ white vertices, then print -1. Otherwise, print the minimum value the tree can have.
1 2 3
2
3 3 4 3 3
3
3 5 4 3 4
4
2 10 5 7
-1
You are allowed to not use all the chains, so it's optimal to only use chain of length $$$4$$$ in the second example.
Name |
---|