190502025-11-18 22:01:28RRoliTársaság (50)cpp17Időlimit túllépés 7/50500ms828 KiB
#include <bits/stdc++.h>
using namespace std;

int n, k;
vector<int> len, apa;
vector<vector<int>> gyerek;

int futtat(int t) {
    int szam = 0;
    queue<pair<int, int>> sor;
    sor.push(make_pair(1, 0));

    while(sor.size() > 0) {
        for(auto j : gyerek[sor.front().first]) {
            if(sor.front().second + len[j] > t) {
                sor.push(make_pair(j, 0));
                szam++;
            } else {
                sor.push(make_pair(j, sor.front().second + len[j]));
            }
        }
        sor.pop();
    }

    return szam;
}

int main() {
    cin >> n >> k;
    len.resize(n+1);
    apa.resize(n+1);
    gyerek.resize(n+1, vector<int>(0));
    
    len[1] = 0; apa[1] = 1;
    for(int i = 2; i <= n; i++) {
        cin >> apa[i] >> len[i];
        gyerek[apa[i]].push_back(i);
    }

    int hatar = 0;
    while(futtat(hatar) > k) hatar++;
    cout << hatar;

	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base7/50
1Elfogadva0/01ms508 KiB
2Időlimit túllépés0/0486ms564 KiB
3Hibás válasz0/31ms316 KiB
4Hibás válasz0/32ms316 KiB
5Elfogadva3/31ms316 KiB
6Hibás válasz0/33ms316 KiB
7Hibás válasz0/37ms316 KiB
8Időlimit túllépés0/3500ms316 KiB
9Időlimit túllépés0/3500ms316 KiB
10Időlimit túllépés0/3500ms316 KiB
11Időlimit túllépés0/3486ms568 KiB
12Időlimit túllépés0/3483ms564 KiB
13Időlimit túllépés0/4486ms568 KiB
14Időlimit túllépés0/4500ms652 KiB
15Időlimit túllépés0/4485ms564 KiB
16Elfogadva4/48ms828 KiB
17Időlimit túllépés0/4488ms820 KiB