#include<bits/stdc++.h>
using namespace std;
int typeNum,v[105],presentNum[105],testNum[105];
long long totalV;
void input(){
scanf("%d%d",&totalV,&typeNum);
for(int i=0;i<typeNum;i++){
scanf("%d",&v[i]);
}
}
long long cost(){
long long total=0;
for(int i=0;i<typeNum;i++){
total+=v[i]*testNum[i];
}
return total;
}
int num(){
int total=0;
for(int i=0;i<typeNum;i++){
total+=testNum[i];
}
return total;
}
void solve(){
presentNum[0]=ceil((float)totalV/v[1]);
long long costBeforeChange;
for(int i=0;i<typeNum;i++)
for(int j=0;j<typeNum;j++){
do
{
memcpy(testNum,presentNum,sizeof(testNum)*typeNum/105);
costBeforeChange=cost();
testNum[i]--;
while(cost()<totalV)
testNum[j]++;
if(num()<costBeforeChange){
presentNum[i]=testNum[i];
presentNum[j]=testNum[j];
}
else break;
}while (true);
}
}
int main(){
#ifdef DEBUG
freopen("input.txt","r",stdin);
#endif
input();
solve();
}
今晚写的
猜你喜欢
转载自blog.csdn.net/qq_42637581/article/details/86651691
今日推荐
周排行