215322026-01-13 12:33:20szabelrÓvodacpp17Hibás válasz 29/50180ms15772 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int k, n;
    cin >> k >> n;
    vector<long long>db(n + 1);
    for (int i = 1; i <= n; i++)
    {
        int x; cin >> x;
        db[i] = x;
    }
    vector<vector<long long>>gyerek(k, vector<long long>(3));
    for (int i = 0; i < k; i++)
    {
        int x; cin >> x;
        gyerek[i][0] = i + 1;
        gyerek[i][1] = x;
    }
    // sorsz.,szerep,siras
    for (int i = 0; i < k; i++)
    {
        int x; cin >> x;
        gyerek[i][2] = x;
    }
    sort(gyerek.begin(), gyerek.end(), [](auto a, auto b) {
        return a[2] > b[2];
        });
    int sum = 0;
    vector<long long> res(k + 1, -1);
    vector<long long> maradt;
    for (int i = 0; i < k; i++)
    {
        if (db[gyerek[i][1]] > 0)
        {
            res[gyerek[i][0]] = gyerek[i][1];
            db[gyerek[i][1]]--;
        }
        else
        {
            sum += gyerek[i][2];
        }
    }
    for (int i =1; i <= n; i++)
    {
        while (db[i] > 0)
        {
            maradt.push_back(i);
            db[i]--;
        }
    }
    cout << sum << endl;
    int x = maradt.size() - 1;
    for (int i = 1; i <= k; i++)
    {
        if (res[i] == -1)
        {
            res[i] = maradt[x];
            x--;
        }
    }
    for (int i = 1; i <= k; i++)
        cout << res[i] << " ";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base29/50
1Hibás válasz0/01ms500 KiB
2Hibás válasz0/08ms820 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/22ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Hibás válasz0/21ms316 KiB
8Részben helyes1/21ms500 KiB
9Elfogadva2/21ms316 KiB
10Elfogadva2/21ms316 KiB
11Elfogadva2/21ms316 KiB
12Részben helyes1/21ms508 KiB
13Hibás válasz0/22ms332 KiB
14Elfogadva3/33ms316 KiB
15Hibás válasz0/319ms1416 KiB
16Hibás válasz0/343ms2540 KiB
17Elfogadva3/372ms4384 KiB
18Hibás válasz0/3107ms8836 KiB
19Elfogadva3/3136ms6512 KiB
20Elfogadva3/3157ms7096 KiB
21Részben helyes1/3171ms7852 KiB
22Hibás válasz0/4180ms15772 KiB