第三题:
int main() {
int n, total;
cin >> n >> total;
vector<int> w(total);
vector<float> price(total);
char temp;
float a;
for (int i = 0; i < total; i++) {
cin >> w[i] >> temp >> a;
price[i] = w[i] * a;
}
vector<float> dp(n + 1, 0);
float res = 0;
for (int i = 0; i < total; i++) {
for (int j = n; j > 0 && j >= w[i]; j--) {
dp[j] = max(dp[j], dp[j - w[i]] + price[i]);
res = max(res, dp[j]);
}
}
int k = res;
int t = (res - k) * 10000;
cout << to_string(k) + '.' + to_string(t) << endl;
system("pause");
return 0;
}