28212023-01-27 07:20:22bzsofiaÓvodacpp11Runtime error 4/5094ms8708 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <deque>

using namespace std;

struct adat
{
    int vagy, poz, konny, lett;
};

struct adat2
{
    int fer, van;
};

bool comp (adat a, adat b)
{
    return a.konny>b.konny;
}

bool comp2 (adat a, adat b)
{
    return a.poz<b.poz;
}

int i, n, m, sir, maradt;
deque <int> maradek;

int main()
{
    cin>>n>>m;
    vector <adat2> szerep(m+1);
    vector <adat> gyerek(n+1);

    for (i=1; i<=m; ++i) cin>>szerep[i].fer;

    for (i=1; i<=n; ++i)
    {
        cin>>gyerek[i].vagy;
        gyerek[i].poz=i;
    }

    for (i=1; i<=n; ++i) cin>>gyerek[i].konny;

    sort (gyerek.begin()+1, gyerek.end(), comp);

    maradt=m;
    for (i=1; i<=n; ++i)
    {
        if (n-i+1==maradt)
        {
            sir+=gyerek[i].konny;
            maradek.push_back(i);
        }
        else if (szerep[gyerek[i].vagy].fer)
        {
            if (!szerep[gyerek[i].vagy].van==0) --maradt;
            --szerep[gyerek[i].vagy].fer;
            szerep[gyerek[i].vagy].van=1;
            gyerek[i].lett=gyerek[i].vagy;
        }else
        {
            sir+=gyerek[i].konny;
            maradek.push_back(i);
        }
        //cout<<gyerek[i].konny<<" ";
    }

    for (i=1; i<=m; ++i)
    {
        if (!szerep[i].van)
        {
            gyerek[maradek.front()].lett=i;
            szerep[i].van=1;
            --szerep[i].fer;
            maradek.pop_front();
        }
    }

    while (!maradek.empty())
    {
        if (szerep[i].fer)
        {
            gyerek[maradek.front()].lett=i;
            maradek.pop_front();
            --szerep[i].fer;
        }else ++i;
    }

    sort (gyerek.begin()+1, gyerek.end(), comp2);

    cout<<sir<<"\n";
    for (i=1; i<=n; ++i)
    {
        cout<<gyerek[i].lett<<" ";
    }

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base4/50
1Accepted0/03ms1680 KiB
2Runtime error0/07ms2160 KiB
3Runtime error0/22ms2268 KiB
4Wrong answer0/22ms2372 KiB
5Runtime error0/22ms2568 KiB
6Wrong answer0/22ms2600 KiB
7Runtime error0/22ms2824 KiB
8Partially correct1/22ms2732 KiB
9Wrong answer0/22ms2876 KiB
10Accepted2/22ms2992 KiB
11Runtime error0/22ms3304 KiB
12Runtime error0/22ms3376 KiB
13Runtime error0/23ms3640 KiB
14Runtime error0/33ms3656 KiB
15Runtime error0/312ms4244 KiB
16Runtime error0/325ms5140 KiB
17Partially correct1/345ms5388 KiB
18Runtime error0/354ms6664 KiB
19Runtime error0/359ms6592 KiB
20Runtime error0/368ms7040 KiB
21Runtime error0/376ms7364 KiB
22Runtime error0/494ms8708 KiB