제출 #1272787

#제출 시각아이디문제언어결과실행 시간메모리
1272787soheil17Knapsack (NOI18_knapsack)C++20
12 / 100
1 ms576 KiB
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int s, n;
    cin >> s >> n;

    int v[n+1], w[n+1], k[n+1];

    for(int i = 1; i <= n; i++)
    {
        cin >> v[i] >> w[i] >> k[i];
    }

    
    vector<int> a;
    for(int i = 1; i <= n; i++)
    {
        a.push_back(i);
    }

    
    sort(a.begin(), a.end(), [&](int i, int j) {
        return (float)v[i] / w[i] > (float)v[j] / w[j];
    });

    int cost = 0;

    for(int idx = 0; idx < n; idx++)
    {
        int i = a[idx];
        while(s >= w[i] && k[i] > 0)
        {
            cost += v[i];
            s -= w[i];
            k[i]--;
        }
    }

    cout << cost ;
}
#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...