151422025-02-13 17:07:52horkaÓvodacpp17Wrong answer 35/50127ms8876 KiB
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n,k; cin>>n>>k;
    vector<int> hany(k+1);
    for(int i=1; i<=k; i++)
        cin>>hany[i];
    vector<vector<array<int, 2>>> v(k+1);
    vector<int> ind(n+1);
    for(int i=1; i<=n; i++)
        cin>>ind[i];
    for(int i=1; i<=n; i++)
    {
        int ar; cin>>ar;
        v[ind[i]].push_back({ar,i});
    }
    vector<int> ans(n+1);
    set<int> kell;
    for(int i=1; i<=k; i++)
    {
        if(v[i].empty())
        {
            kell.insert(i);
            continue;
        }
        sort(v[i].rbegin(),v[i].rend());
        ans[v[i][0][1]]=i;
    }
    int sum=0;
    for(int i=1; i<=k; i++)
    {
        if(v[i].empty()) continue;
        for(int j=hany[i]; j<v[i].size(); j++)
        {
            int cs=*kell.begin();
            ans[v[i][j][1]]=cs;
            sum+=v[i][j][0];
            kell.erase(cs);
        }
    }
    vector<array<int, 3>> bent;
    for(int i=1; i<=k; i++)
    {
        if(v[i].empty()) continue;
        for(int j=1; j<min((int)v[i].size(),hany[i]); j++)
            bent.push_back({v[i][j][0],i,v[i][j][1]});
    }
    sort(bent.begin(),bent.end());
    for(auto &[ar,tip,idx]:bent)
    {
        if(kell.empty())
        {
            ans[idx]=tip;
        }
        else
        {
            int cs=*kell.begin();
            kell.erase(cs);
            sum+=ar;
            ans[idx]=cs;
        }
    }
    cout<<sum<<"\n";
    for(int i=1; i<=n; i++)
        cout<<ans[i]<<" ";
    cout<<"\n";
}
SubtaskSumTestVerdictTimeMemory
base35/50
1Accepted0/01ms316 KiB
2Wrong answer0/04ms564 KiB
3Partially correct1/21ms316 KiB
4Accepted2/21ms316 KiB
5Partially correct1/21ms356 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Partially correct1/21ms316 KiB
9Accepted2/21ms384 KiB
10Accepted2/21ms316 KiB
11Partially correct1/21ms316 KiB
12Partially correct1/21ms344 KiB
13Accepted2/22ms316 KiB
14Partially correct1/32ms316 KiB
15Accepted3/313ms1108 KiB
16Accepted3/329ms2168 KiB
17Partially correct1/343ms2320 KiB
18Accepted3/371ms4660 KiB
19Partially correct1/379ms3852 KiB
20Partially correct1/382ms4016 KiB
21Partially correct1/3100ms4528 KiB
22Accepted4/4127ms8876 KiB