92032024-02-18 16:11:21BenedekMartonTevefarmcpp17Hibás válasz 38/5090ms14776 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    cin >> n;
    int tevter[n+1];
    for(int i=1; i<=n; i++)
    {
        cin >> tevter[i];
    }
    int osv[n+1];
    osv[1]=0;
    for(int i=2; i<=n; i++)
    {
        cin >> osv[i];
    }
    vector <int> gyv[n+1];
    for(int i=1; i<=n; i++)
    {
        gyv[osv[i]].push_back(i);
    }
    int  keszgyersz[n+1], osztev[n+1];
    bool kiv[n+1];
    for(int i=1; i<=n; i++)
    {
        kiv[i]=0;
        keszgyersz[i]=0;
    }
    queue <int> q;
    for(int i=1; i<=n; i++)
    {
        if(gyv[i].size()==0)
        {
            q.push(i);
        }
    }
    int x, gyosz;
    while(!q.empty())
    {
        x=q.front();
        q.pop();
        gyosz=0;
        for(int i=0; i<gyv[x].size(); i++)
        {
            gyosz=gyosz+osztev[gyv[x][i]];
        }
        if(gyosz>tevter[x])
        {
            osztev[x]=gyosz;
        }
        else
        {
            osztev[x]=tevter[x];
            kiv[x]=1;
        }
        keszgyersz[osv[x]]++;
        //cout << x << " " << osztev[x] << endl;
        if(x!=0)
        {
            if(keszgyersz[osv[x]]==gyv[osv[x]].size())
            {
                q.push(osv[x]);
            }
        }
    }
    cout << osztev[1] << endl;
    if(kiv[1])
    {
        cout << 1 << endl << 1;
        return 0;
    }
    vector <int> megoldas;
    q.push(1);
    while(!q.empty())
    {
        x=q.front();
        q.pop();
        for(int i=0; i<gyv[x].size(); i++)
        {
            if(kiv[gyv[x][i]])
            {
                megoldas.push_back(gyv[x][i]);
            }
            else
            {
                q.push(gyv[x][i]);
            }
        }
    }
    cout << megoldas.size() << endl;
    for(int i=0; i<megoldas.size(); i++)
    {
        cout << megoldas[i] << " ";
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base38/50
1Elfogadva0/03ms1812 KiB
2Elfogadva0/03ms2240 KiB
3Elfogadva4/43ms2264 KiB
4Elfogadva4/42ms2360 KiB
5Elfogadva4/43ms2380 KiB
6Elfogadva4/43ms2664 KiB
7Elfogadva4/441ms8876 KiB
8Elfogadva6/650ms10232 KiB
9Elfogadva6/657ms11616 KiB
10Elfogadva6/668ms12848 KiB
11Hibás válasz0/682ms13704 KiB
12Hibás válasz0/690ms14776 KiB