91972024-02-18 15:51:24BenedekMartonTevefarmcpp17Részben helyes 32/5097ms14936 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(keszgyersz[osv[x]]==gyv[osv[x]].size() and x!=0)
        {
            q.push(osv[x]);
        }
    }
    cout << osztev[1] << endl;
    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
base32/50
1Elfogadva0/03ms1816 KiB
2Elfogadva0/03ms2236 KiB
3Részben helyes2/43ms2264 KiB
4Elfogadva4/43ms2476 KiB
5Futási hiba0/43ms2760 KiB
6Elfogadva4/43ms3072 KiB
7Elfogadva4/443ms9164 KiB
8Elfogadva6/652ms10260 KiB
9Elfogadva6/661ms11820 KiB
10Elfogadva6/668ms12944 KiB
11Hibás válasz0/687ms13760 KiB
12Hibás válasz0/697ms14936 KiB