为什么错?错哪里了?因该怎么改?
题目描述
小李准备买若干件家具,每件家具都很重,于是找来了搬家公司来搬运,每件物品的搬运费用都不一样,已知搬运它们其中每一件的费用。
现在搬家公司搞活动,可以让顾客每次任意选取2件商品。
但是2件商品只算一件商品的费用, 这个商品的搬运费用是将选出的2个商品的费用之和除以k的运算结果。
如此反复,直到只收一件商品的钱。 这个就是商店要付的费用,小李想尽可能的少付钱,以便这个月“不吃土”。所以请你为小李计算一下最少只用付多少钱。
输入
第一行输入n,k分别表示n件商品及被除数k 第二行输入n个数,分别为w1,w2.....wn表示每一件物品的搬运费
输出
输出一个数,表示最少付多少钱
样例输入 复制
5 2
1 2 3 4 5
样例输出 复制
1
提示
对于100%数据,n和k<=10000
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
vector<int> c(n);
for (int i = 0; i < n; i++) {
cin >> c[i];
}
sort(c.begin(), c.end());
int total_a = 0;
while (c.size() > 1) {
int i1 = c[0];
int i2 = c[1];
c.erase(c.begin(), c.begin() + 2);
int new_a = round((i1 + i2) / double(k));
c.push_back(new_a);
total_a += new_a;
}
cout << total_a;
return 0;
}