150712025-02-12 11:11:07mateÓvodacpp17Wrong answer 28/50104ms2856 KiB
#include <bits/stdc++.h>
using namespace std;

#define p array<int,3>

int main() {
	int n,k; cin >> n >> k;
    vector <int> v(k+1);
    for(int i = 1; i <= k; i++){
        cin >> v[i];
    }
    vector <p> emberek(n+1,{0,0,0});
    for(int i = 1; i <= n; i++){
        cin >> emberek[i][1];
        emberek[i][2] = i;
    }
    for(int i = 1; i <= n; i++){
        cin >> emberek[i][0];
    }
    sort(emberek.begin(),emberek.end());
    int cnt = 0;
    vector <int> ans(n+1,0);
    for(int i = n; i > 0; i--){
        if(v[emberek[i][1]] > 0)   {
            v[emberek[i][1]]--;
            ans[emberek[i][2]] = emberek[i][1];
        }else{
            cnt += emberek[i][0];
        }
    }
    cout << cnt << '\n';
    //reverse(ans.begin(),ans.end());
    //ans.resize(n);
    bool kesz = 0;
    for(int& x : ans){
        if(!kesz){
            kesz = 1;
            continue;
        }
        if(x == 0){
            for(int i = 1; i <= k; i++){
                if(v[i] > 0){
                    x = i;
                    v[i]--;
                    break;
                }
            }
        }
        cout << x << ' ';
    }
}
SubtaskSumTestVerdictTimeMemory
base28/50
1Accepted0/01ms508 KiB
2Wrong answer0/04ms316 KiB
3Accepted2/21ms316 KiB
4Partially correct1/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Wrong answer0/21ms316 KiB
8Partially correct1/21ms316 KiB
9Accepted2/21ms316 KiB
10Accepted2/21ms508 KiB
11Accepted2/21ms316 KiB
12Partially correct1/21ms512 KiB
13Wrong answer0/22ms412 KiB
14Accepted3/32ms316 KiB
15Wrong answer0/312ms676 KiB
16Wrong answer0/346ms820 KiB
17Accepted3/337ms1216 KiB
18Wrong answer0/361ms1820 KiB
19Accepted3/370ms1916 KiB
20Accepted3/379ms2100 KiB
21Partially correct1/394ms2412 KiB
22Wrong answer0/4104ms2856 KiB