150592025-02-11 20:27:48szjTevefarmcpp17Hibás válasz 21/50104ms5172 KiB
#include <bits/stdc++.h>

using namespace std;
struct csucs
{
    int cs, p;
};
vector<vector<int>>vec;
int osv[100000], veg[100000];
int req(int n, int el)
{
    int sum=0;
    for(auto i:vec[el])sum+=req(osv[i], i);
    if(sum >= n)
    {
        veg[el]=1;
        return sum;
    }
    else
    {
        for(auto i:vec[el])veg[i]=1;
        return n;
    }


}
int main()
{
    //ifstream cin("f.txt");
    int i, n, a, j;
    cin >> n;
    csucs e;
    vec.resize(n);
    fill(veg, veg+n, 0);
    for(i=0; i<n; i++)cin >> osv[i];
    for(i=1; i<n; i++)
    {
        cin >> a;
        vec[a-1].push_back(i);
    }
    cout << req(osv[0], 0) << endl;
    a=0;
    for(i=0; i<n; i++)if(veg[i]==0)a++;
    cout << a<<endl;
    for(i=0; i<n; i++)if(veg[i]==0)cout << i+1 << ' ';
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base21/50
1Elfogadva0/01ms512 KiB
2Hibás válasz0/02ms316 KiB
3Részben helyes2/41ms316 KiB
4Részben helyes2/41ms316 KiB
5Elfogadva4/41ms316 KiB
6Részben helyes2/42ms316 KiB
7Részben helyes2/441ms2712 KiB
8Részben helyes3/650ms3256 KiB
9Részben helyes3/659ms3704 KiB
10Részben helyes3/668ms4364 KiB
11Hibás válasz0/693ms4660 KiB
12Hibás válasz0/6104ms5172 KiB