152192025-02-16 21:28:48antiTevefarmcpp17Futási hiba 2/507ms2836 KiB
#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

vector<vector<int>> children;
bool selected[100000] = {0};
int db = 0;

int dfs( int u, int T[] ){
    int sum = 0;
    for(int v : children[u]){
        sum += dfs( v, T);
    }
    if(sum < T[u]){
        for(int i : children[u]){
            selected[i] = 0;
            db--;
        }
        selected[u] = 1;
        db++;
    }
    return max( sum, T[u]);

}

int main(){
    ifstream fin("be2.txt");
    int n;
    cin >> n;

    int T[n];
    for(int i=0; i<500; i++){
        cin >> T[i];
    }
    for(int i=500; i<1000; i++){
        cin >> T[i];
    }

    children.resize(n);
    for(int i=1; i<n; i++){
        int parent;
        cin >> parent;
        children[parent - 1].push_back(i);
    }
    cout << dfs( 0, T ) << endl;
    cout << db << endl;
    for(int i=0; i<n; i++){
        if(selected[i] == 1){
            cout << i+1 << " ";
        }
    }

}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base2/50
1Futási hiba0/01ms316 KiB
2Hibás válasz0/02ms316 KiB
3Futási hiba0/41ms316 KiB
4Futási hiba0/41ms500 KiB
5Futási hiba0/41ms404 KiB
6Részben helyes2/42ms316 KiB
7Futási hiba0/44ms1588 KiB
8Futási hiba0/63ms1844 KiB
9Futási hiba0/67ms2204 KiB
10Futási hiba0/64ms2356 KiB
11Futási hiba0/63ms2804 KiB
12Futási hiba0/64ms2836 KiB