제출 #1351146

#제출 시각아이디문제언어결과실행 시간메모리
1351146andreimKnapsack (NOI18_knapsack)C++20
12 / 100
0 ms344 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

struct Objet {
    double prix, poids, nb;
};

bool comp(const Objet& a, const Objet& b)
{
    return (a.prix / a.poids) < (b.prix / b.poids);
}

signed main(void)
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int poidsMax, nbObjets;
    cin >> poidsMax >> nbObjets;
    vector<Objet> objets(nbObjets);
    for (int i = 0; i < nbObjets; i++)
        cin >> objets[i].prix >> objets[i].poids >> objets[i].nb;

    sort(objets.rbegin(), objets.rend(), comp);

    int res = 0, poidsRestant = poidsMax;
    for (int i = 0; i < nbObjets; i++)
    {
        double nbPris = poidsRestant / objets[i].poids;
        res += objets[i].prix * (int)(min(objets[i].nb, nbPris));
        poidsRestant -= objets[i].poids * (int)(min(objets[i].nb, nbPris));
    }

    cout << res << "\n";

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...