150722025-02-12 11:17:44mateÓvodacpp17Hibás válasz 28/50105ms4780 KiB
#include <bits/stdc++.h>
using namespace std;

#define p array<int,3>
#define int long long

signed 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';
    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 << ' ';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base28/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/04ms564 KiB
3Elfogadva2/21ms316 KiB
4Részben helyes1/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Hibás válasz0/21ms316 KiB
8Részben helyes1/21ms500 KiB
9Elfogadva2/21ms316 KiB
10Elfogadva2/21ms316 KiB
11Elfogadva2/21ms316 KiB
12Részben helyes1/21ms316 KiB
13Hibás válasz0/22ms316 KiB
14Elfogadva3/32ms316 KiB
15Hibás válasz0/312ms856 KiB
16Hibás válasz0/346ms1456 KiB
17Elfogadva3/339ms2020 KiB
18Hibás válasz0/363ms2964 KiB
19Elfogadva3/371ms3416 KiB
20Elfogadva3/379ms3636 KiB
21Részben helyes1/397ms4148 KiB
22Hibás válasz0/4105ms4780 KiB