125162024-12-21 11:56:19GundischBalazsBináris fa magassága (50 pont)cpp17Hibás válasz 0/50112ms828 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

// Függvény a szülő csúcs kiszámításához
int parent(int node) {
    return node / 2;
}

int main() {
    int N, M;
    cin >> N >> M;

    int total_nodes = (1 << N) - 1; // Teljes csúcsszám: 2^N - 1
    vector<int> edge_lengths(total_nodes + 1, 1); // Az élek hossza, kezdetben 1

    int max_height = N; // Kezdeti magasság (a teljes fa magassága minden él hossza 1-nél)

    while (M--) {
        int node, new_length;
        cin >> node >> new_length;

        int old_length = edge_lengths[node];
        edge_lengths[node] = new_length; // Él hosszának frissítése

        // Frissítsük a magasságot, ha az érintett
        int current_height = 0;
        int current_node = node;

        while (current_node > 1) {
            current_height += edge_lengths[current_node];
            current_node = parent(current_node);
        }

        current_height += edge_lengths[1]; // Gyökér
        max_height = max(max_height, current_height);

        cout << max_height << "\n"; // Eredmény kiírása
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/01ms508 KiB
2Hibás válasz0/0101ms824 KiB
3Hibás válasz0/23ms320 KiB
4Hibás válasz0/23ms320 KiB
5Hibás válasz0/23ms320 KiB
6Hibás válasz0/23ms500 KiB
7Hibás válasz0/33ms400 KiB
8Hibás válasz0/33ms320 KiB
9Hibás válasz0/33ms320 KiB
10Hibás válasz0/33ms320 KiB
11Hibás válasz0/2108ms692 KiB
12Hibás válasz0/2112ms756 KiB
13Hibás válasz0/2112ms704 KiB
14Hibás válasz0/2103ms824 KiB
15Hibás válasz0/2112ms824 KiB
16Hibás válasz0/2104ms700 KiB
17Hibás válasz0/2109ms828 KiB
18Hibás válasz0/2100ms696 KiB
19Hibás válasz0/2108ms820 KiB
20Hibás válasz0/3108ms748 KiB
21Hibás válasz0/3104ms696 KiB
22Hibás válasz0/3100ms824 KiB
23Hibás válasz0/396ms824 KiB