2617 - 运输
现在已知N件商品,和搬运它们其中每一件的费用。
现在搬家公司老板Mr.sb决定让我们每次任意选取2件商品。
然后这2件商品只算一件商品的费用。
但是这个商品的搬运费用是将选出的2个商品的费用之和除以k的运算结果。
如此反复。直到只收一件商品的钱。
这个就是商店要付的费用。
掌柜的想尽可能的少付钱,以便将更多的钱捐给希望工程。
所以请你帮他计算一下最少只用付多少钱。
Input
n,k w1,w2.....wn(每一件物品搬运费
Output
一个数 最少付多少钱
Examples
Input
5 2 1 2 3 4 5
Output
1
Hint
数据规模
n和k<=10000
Solution C++
#include<cstdio> #include<cstdlib> #include<iostream> #include<queue> using namespace std; int main() { priority_queue<int>q; int n,k; cin>>n>>k; int x; for(int i=1;i<=n;++i) { cin>>x; q.push(x); } for(int i=1;i<=n-1;++i) { int sum=q.top(); q.pop(); sum=sum+q.top(); q.pop(); sum=sum/k; q.push(sum); } cout<<q.top(); return 0; }
Hint
数据规模
n和k<=10000