题目描述
解题思路
题目描述很清晰不再赘述,对于每次训练,需要考虑采用士兵单独训练还是组团训练的方式,故每次训练将所需训练次数大于0的士兵花费进行求和,与组团训练进行比较,以此判断是否要采用组团训练的方式
附代码
#include<bits/stdc++.h>
#include<unordered_map>
#include<unordered_set>
#define ll long long
using namespace std;
int N, S;
int main() {
cin >> N >> S;
int n = N;
vector<int> p; //成本
vector<int> c; //次数
while (n--) {
int pi, ci;
cin >> pi >> ci;
p.push_back(pi);
c.push_back(ci);
}
int sum = 0;
while (1) {
int flag = 1;
int consume = 0;
for (int i = 0; i < c.size(); i++) {
if (c[i] > 0)
{
consume += p[i];
c[i]--;
flag = 0;
}
}
sum += min(consume, S);
if (flag) break;
}
cout << sum;
return 0;
}