46372023-03-30 13:31:59AblablablaÓvodacpp17Hibás válasz 14/5093ms7260 KiB
#include <bits/stdc++.h>

using namespace std;
typedef pair<int, int> pii;

struct comp{
    bool operator()(pii a, pii b){
        if(a.first < b.first){
            return true;
        } else if(a.first > b.first){
            return false;
        } else{
            return a.second < b.second;
        }
    }
};

int main()
{
    int n, k;
    cin >> n >> k;
    vector<int> maxi(k + 1, 0);
    for(int i = 1; i <= k; i++){
        cin >> maxi[i];
    }
    vector<int> betolt(k + 1, 0);
    vector<pii> szamok(n, {0, 0});  //i edik par elso eleme a kivant szerep masodik a sirassal toltott percek
    for(int i = 0; i < n; i++){
        cin >> szamok[i].first;
        betolt[szamok[i].first]++;
    }

    for(int i = 1; i <= k; i++){
        betolt[i] += betolt[i - 1];
    }

    for(int i = 0; i < n; i++){
        cin >> szamok[i].second;
    }

    sort(szamok.begin(), szamok.end(), comp());

    for(pii x : szamok){
        //cout << x.first << " " << x.second << "\n";
    }

    for(int x : betolt){
        //cout << x << "\n";
    }

    int valasz = 0;
    vector<int> siros;

    for(int i = 1; i <= k; i++){
        int j = betolt[i - 1];
        //cout << i << " " << maxi[i] - betolt[i] << "\n";
        while(maxi[i] - betolt[i] + j < 0){
            valasz += szamok[j].second;
            j++;
            siros.push_back(j);
            //cout << i << " " << j << " " << valasz << " " << betolt[i] << " " << i << "\n";
        }
    }

    cout << valasz << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base14/50
1Hibás válasz0/03ms1816 KiB
2Hibás válasz0/06ms2228 KiB
3Részben helyes1/23ms2212 KiB
4Részben helyes1/22ms2424 KiB
5Részben helyes1/23ms2640 KiB
6Részben helyes1/22ms2752 KiB
7Hibás válasz0/22ms2972 KiB
8Részben helyes1/22ms3160 KiB
9Részben helyes1/23ms3376 KiB
10Részben helyes1/23ms3464 KiB
11Részben helyes1/22ms3592 KiB
12Részben helyes1/22ms3672 KiB
13Hibás válasz0/23ms3808 KiB
14Részben helyes1/33ms3892 KiB
15Hibás válasz0/312ms4400 KiB
16Hibás válasz0/325ms5000 KiB
17Részben helyes1/335ms4948 KiB
18Hibás válasz0/354ms5604 KiB
19Részben helyes1/361ms5316 KiB
20Részben helyes1/365ms5916 KiB
21Részben helyes1/378ms5964 KiB
22Hibás válasz0/493ms7260 KiB