154432025-02-19 16:26:01feheristvanTársaság (50)cpp17Hibás válasz 7/5025ms1000 KiB
#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>

using namespace std;

const int INF = 1e9;

struct Edge {
    int to, weight;
};

int N, K;
vector<vector<Edge>> tree;
vector<int> maxDist;

void dfs(int node, int parent, int dist) {
    maxDist[node] = dist;
    for (auto &edge : tree[node]) {
        if (edge.to != parent) {
            dfs(edge.to, node, dist + edge.weight);
        }
    }
}

bool canAchieve(int maxTime) {
    vector<int> candidates;
    
    for (int i = 2; i <= N; i++) { 
        if (tree[i].size() == 1) { // Leaf nodes
            candidates.push_back(maxDist[i]);
        }
    }
    
    sort(candidates.rbegin(), candidates.rend()); // Sort descending
    
    if (candidates.size() <= K) return true; // If leaves are fewer than K, we can select all

    return candidates[K] <= maxTime;
}

int binarySearch() {
    int lo = 0, hi = INF, ans = INF;
    
    while (lo <= hi) {
        int mid = (lo + hi) / 2;
        if (canAchieve(mid)) {
            ans = mid;
            hi = mid - 1;
        } else {
            lo = mid + 1;
        }
    }
    
    return ans;
}

int main() {
    cin >> N >> K;
    tree.resize(N + 1);
    maxDist.resize(N + 1, 0);
    
    for (int i = 2; i <= N; i++) {
        int P, T;
        cin >> P >> T;
        tree[P].push_back({i, T});
        tree[i].push_back({P, T});
    }

    dfs(1, -1, 0);
    
    cout << binarySearch() << endl;
    
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base7/50
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/012ms608 KiB
3Hibás válasz0/31ms508 KiB
4Hibás válasz0/31ms316 KiB
5Elfogadva3/31ms328 KiB
6Hibás válasz0/31ms316 KiB
7Hibás válasz0/32ms420 KiB
8Hibás válasz0/32ms432 KiB
9Hibás válasz0/34ms316 KiB
10Hibás válasz0/37ms608 KiB
11Hibás válasz0/38ms688 KiB
12Hibás válasz0/312ms756 KiB
13Hibás válasz0/414ms748 KiB
14Hibás válasz0/417ms924 KiB
15Hibás válasz0/419ms1000 KiB
16Elfogadva4/421ms820 KiB
17Hibás válasz0/425ms956 KiB