92072024-02-18 16:15:53BenedekMartonTevefarmcpp17Futási hiba 46/50101ms16324 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];
    long long 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;
    long long 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
base46/50
1Elfogadva0/03ms1812 KiB
2Elfogadva0/03ms2244 KiB
3Elfogadva4/43ms2364 KiB
4Elfogadva4/43ms2620 KiB
5Futási hiba0/43ms2784 KiB
6Elfogadva4/43ms2824 KiB
7Elfogadva4/441ms9652 KiB
8Elfogadva6/650ms10708 KiB
9Elfogadva6/659ms12020 KiB
10Elfogadva6/667ms13584 KiB
11Elfogadva6/690ms14916 KiB
12Elfogadva6/6101ms16324 KiB