#include<bits/stdc++.h> using namespace std; int main() { int n, r; cin >> n >> r; vector<int> t(n); for(int i=0;i<n;i++) cin>>t[i]; // 按打水时间从短到长排序 sort(t.begin(), t.end()); // 维护每个水龙头的当前总时间 vector<int> taps(r, 0); int total=0; // 分配每个人到当前时间最少的水龙头 for(int i=0;i<n;i++) { // 找到当前累计时间最少的水龙头 int min_tap=0; for(int j=1;j<r;j++) { if(taps[j]<taps[min_tap]) min_tap=j; } // 更新该水龙头的总时间和全局总时间 taps[min_tap]+=t[i]; total+=taps[min_tap]; } cout<<total; return 0; } /************************************************************** Problem: 1228 User: zhengzihao Language: C++ Result: Accepted Time:9 ms Memory:2076 kb ****************************************************************/