211442026-01-12 12:59:44szabelrÓvodacpp17Hibás válasz 23/50184ms15804 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=0; 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
base23/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/08ms828 KiB
3Futási hiba0/21ms620 KiB
4Részben helyes1/21ms316 KiB
5Részben helyes1/21ms508 KiB
6Elfogadva2/21ms316 KiB
7Hibás válasz0/21ms316 KiB
8Részben helyes1/21ms360 KiB
9Elfogadva2/21ms316 KiB
10Futási hiba0/21ms508 KiB
11Elfogadva2/21ms332 KiB
12Részben helyes1/21ms384 KiB
13Hibás válasz0/22ms316 KiB
14Elfogadva3/33ms316 KiB
15Hibás válasz0/319ms1416 KiB
16Hibás válasz0/341ms2544 KiB
17Elfogadva3/374ms4272 KiB
18Hibás válasz0/3107ms8784 KiB
19Elfogadva3/3136ms6576 KiB
20Elfogadva3/3155ms7180 KiB
21Részben helyes1/3172ms7852 KiB
22Hibás válasz0/4184ms15804 KiB