2617 - 运输

现在已知N件商品,和搬运它们其中每一件的费用。
现在搬家公司老板Mr.sb决定让我们每次任意选取2件商品。
然后这2件商品只算一件商品的费用。
但是这个商品的搬运费用是将选出的2个商品的费用之和除以k的运算结果。
如此反复。直到只收一件商品的钱。
这个就是商店要付的费用。
掌柜的想尽可能的少付钱,以便将更多的钱捐给希望工程。
所以请你帮他计算一下最少只用付多少钱。

题目输入

n,k
w1,w2.....wn(每一件物品搬运费

题目输出

一个数 最少付多少钱

输入/输出样例

题目输入

5 2
1 2 3 4 5

题目输出

1

提示

数据规模
n和k<=10000

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;
}

提示

数据规模
n和k<=10000

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题