211422026-01-12 12:57:36szabelrÓvodacpp17Wrong answer 23/50231ms10672 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    int k,n;
    cin>>k>>n;
    vector<int>db(n+1);
    for(int i=1; i<=n; i++)
    {
        int x; cin>>x;
        db[i]=x;
    }
    vector<vector<int>>gyerek(k, vector<int>(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<int> res(k+1,-1);
    vector<int> 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;
}
SubtaskSumTestVerdictTimeMemory
base23/50
1Accepted0/01ms316 KiB
2Wrong answer0/09ms564 KiB
3Runtime error0/21ms316 KiB
4Partially correct1/21ms316 KiB
5Partially correct1/21ms316 KiB
6Accepted2/21ms316 KiB
7Wrong answer0/21ms316 KiB
8Partially correct1/21ms316 KiB
9Accepted2/21ms316 KiB
10Runtime error0/21ms316 KiB
11Accepted2/21ms316 KiB
12Partially correct1/21ms316 KiB
13Wrong answer0/22ms316 KiB
14Accepted3/32ms448 KiB
15Wrong answer0/325ms1080 KiB
16Wrong answer0/356ms2168 KiB
17Accepted3/390ms3776 KiB
18Wrong answer0/3136ms6332 KiB
19Accepted3/3165ms5832 KiB
20Accepted3/3190ms6708 KiB
21Partially correct1/3206ms7096 KiB
22Wrong answer0/4231ms10672 KiB