B. 放大

内存限制:256 MiB 时间限制:1000 ms 输入文件: data.in 输出文件: data.out
题目类型:传统 评测方式:文本比较

题目描述

给定 n,k ,再给定 n 个整数 a_i ,你每次操作可以任选一个整数乘以 3,问至少几次操作可以使得所有整数的和大于等于 k。

如果永远无法使得所有数字之和大于等于 k,输出 −1。

输入格式

第一行给出两个正整数 n,k,分别表示数字的个数以及最终需要的数字之和。

接下来给出 n 个整数,其中第 i 个整数为 a_i

输出格式

输出一行一个整数表示答案。

样例

样例输入1

3 10
1 0 1

样例输出1

2

样例解释

选择第一个数字乘以 3,此时三个数字变成 [3,0,1],其和 4。

再选择第一个数字乘以 3,此时三个数字变成 [9,0,1],其和大于等于给定值 10。

数据范围与提示

对于 10% 的数据,所有 a_i 之和大于等于 k;

对于另外 20% 的数据,有 a_i<0

对于另外 60% 的数据,有 1≤n≤10^5,1≤a_i≤100,1≤k≤100000

对于 100% 的数据,有 1≤n≤10^5,−10^9≤a_i,k≤10^9