알고리즘 공부
택배 마스터 광우
컴퓨터과학
2023. 3. 2. 20:04
https://softeer.ai/practice/info.do?idx=1&eid=581
Softeer
연습문제를 담을 Set을 선택해주세요. 취소 확인
softeer.ai
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
int railSum(int K, int M,vector<int>rail){
int bucket=0;
int sum=0;
int count=0;
while(count<K){
for(int i=0;i<rail.size();i++){
if(count>=K){
break;
}
if(M>=bucket+rail[i]){
bucket+=rail[i];
}else{
i=i-1;
count++;
sum=sum+bucket;
bucket=0;
}
}
}
return sum;
}
int main(int argc, char** argv)
{
int N,M,K;
cin>>N>>M>>K;
vector<int> rail;
for(int i=0;i<N;i++){
int tmpRail;
cin>>tmpRail;
rail.push_back(tmpRail);
}
int min=-99999;
sort(rail.begin(),rail.end());
do {
int total =railSum(K, M,rail);
if(min==-99999){
min=total;
}
if(min>=total){
min=total;
}
} while(next_permutation(rail.begin(), rail.end()));
cout<<min;
return 0;
}