45382023-03-29 13:39:22AblablablaTevefarmcpp17Hibás válasz 8/50600ms3828 KiB
#include <bits/stdc++.h>

using namespace std;

int n;
vector<int> teve;
vector<int> elsoVar;

int vizsgal(int helyzet){
    int osszeg = 0;

    for(int i = 0; i < n - 1; i++){
        if(elsoVar[i] == helyzet + 1){
            osszeg += vizsgal(i + 1);
        }
    }

    return max(osszeg, teve[helyzet]);
}

int main()
{
    cin >> n;
    teve.assign(n, 0);
    elsoVar.assign(n - 1, 0);

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

    for(int i = 0; i < n - 1; i++){
        cin >> elsoVar[i];
    }

    cout << max(vizsgal(0), teve[0]) << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base8/50
1Hibás válasz0/03ms1876 KiB
2Hibás válasz0/04ms2124 KiB
3Részben helyes2/43ms2336 KiB
4Részben helyes2/43ms2696 KiB
5Részben helyes2/43ms2644 KiB
6Részben helyes2/44ms2832 KiB
7Időlimit túllépés0/4600ms2500 KiB
8Időlimit túllépés0/6566ms2852 KiB
9Időlimit túllépés0/6570ms3272 KiB
10Időlimit túllépés0/6555ms3400 KiB
11Időlimit túllépés0/6583ms3756 KiB
12Időlimit túllépés0/6572ms3828 KiB