227472026-01-15 17:42:55szjÓvodacpp17Hibás válasz 21/5050ms2868 KiB
#include<bits/stdc++.h>
using namespace std;
struct kolyok
{
    int pulyanr, boges, valasz;
};
bool f(kolyok a, kolyok b)
{
    return a.boges > b.boges;
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    long long int n, m, i, siras=0, j=0;
    cin >> n >> m;
    int szerep[m];
    vector<int> kiva(n, -1);
    kolyok t[n];
    for(i=0; i<m; i++)cin >> szerep[i];
    for(i=0; i<n; i++)
    {
        cin >> t[i].valasz;
        t[i].valasz--;
        t[i].pulyanr=i;
    }
    for(i=0; i<n; i++)cin >> t[i].boges;
    sort(t, t+n, f);
    for(i=0; i<n; i++)
    {
        if(szerep[t[i].valasz]>0)
        {
            kiva[t[i].pulyanr]=t[i].valasz;
            szerep[t[i].valasz]--;
        }
    }
    for(i=0; i<n; i++)
    {
        for(j; j<m && szerep[j]==0; j++);
        if(kiva[t[i].pulyanr]==-1)
        {
            siras+=t[i].boges;
            kiva[t[i].pulyanr]=j;
        }
    }
    cout << siras << endl;
    for(i=0; i<n; i++)cout << kiva[i]+1 << " ";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base21/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/03ms508 KiB
3Elfogadva2/21ms316 KiB
4Részben helyes1/21ms508 KiB
5Részben helyes1/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Hibás válasz0/21ms316 KiB
8Részben helyes1/21ms536 KiB
9Elfogadva2/21ms500 KiB
10Elfogadva2/21ms316 KiB
11Elfogadva2/21ms316 KiB
12Részben helyes1/21ms316 KiB
13Hibás válasz0/21ms316 KiB
14Részben helyes1/31ms432 KiB
15Hibás válasz0/37ms748 KiB
16Hibás válasz0/314ms840 KiB
17Elfogadva3/320ms1176 KiB
18Hibás válasz0/330ms1824 KiB
19Részben helyes1/335ms2032 KiB
20Részben helyes1/343ms2072 KiB
21Részben helyes1/346ms2312 KiB
22Hibás válasz0/450ms2868 KiB