WPL求解
#include<bits/stdc++.h>
using namespace std;
class Solution{
public:
int culWpl(deque<int>& nums,int n){
sort(nums.begin(),nums.end());
int sum=0;
//2 3 5 7 8 9 11 ->sum=5
//5 5 7 8 9 11 ->sum=15
//7 8 9 10 11 ->sum=30
//9 10 11 15 ->sum=49
//11 15 19 ->sum=75
//19 26 ->sum=120
//45 ->sum=120
while(nums.size()!=1){
int temp=0;
//temp用来存储加和
temp+=nums.front();
nums.pop_front();
temp+=nums.front();
nums.pop_front();
nums.push_front(temp);
//每次迭代加和得到sum
sum+=temp;
sort(nums.begin(),nums.end());
}
return sum;
}
};
int main(){
Solution solution;
deque<int> nums;
int n;
cin>>n;
for(int i=0;i<n;i++){
int num;
cin>>num;
nums.push_back(num);
}
cout<<"WPL=";
cout<<solution.culWpl(nums,n);
}
欢迎批评指正!