第三题:
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;
}