201982026-01-04 19:07:22hunzombiBináris fa magassága (50 pont)cpp17Időlimit túllépés 20/50600ms1120 KiB
#include <bits/stdc++.h>
using namespace std;

/*

important property of binary trees
parent = floor_division(node)
*/

int fastPow(int a, int b) {
    if (b == 0) return 1;
    int ans = fastPow(a, b / 2);
    ans = ans * ans;
    if (b & 1) {
        return a * ans;
    }
    return ans;
}

int main()
{
    int n, m;
    cin >> n;
    cin >> m;

    n = fastPow(2, n);

    vector<int> val(n, 1), dp;

    for (int i=0; i < m; i++) {
        int u, v;
        cin >> u >> v;
        val[u] = v;

        dp.assign(n, 0);

        for (int i = n - 1; i > 0; i--) {
            if (dp[i / 2] < dp[i] + val[i]) {
                dp[i / 2] = dp[i] + val[i];
            }
        }
        cout << dp[1] << '\n';
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base20/50
1Elfogadva0/01ms316 KiB
2Időlimit túllépés0/0573ms820 KiB
3Elfogadva2/23ms508 KiB
4Elfogadva2/23ms316 KiB
5Elfogadva2/23ms316 KiB
6Elfogadva2/23ms508 KiB
7Elfogadva3/33ms316 KiB
8Elfogadva3/33ms316 KiB
9Elfogadva3/34ms316 KiB
10Elfogadva3/33ms316 KiB
11Időlimit túllépés0/2600ms936 KiB
12Időlimit túllépés0/2598ms952 KiB
13Időlimit túllépés0/2597ms952 KiB
14Időlimit túllépés0/2582ms940 KiB
15Időlimit túllépés0/2580ms1016 KiB
16Időlimit túllépés0/2583ms1076 KiB
17Időlimit túllépés0/2583ms820 KiB
18Időlimit túllépés0/2586ms820 KiB
19Időlimit túllépés0/2583ms1120 KiB
20Időlimit túllépés0/3586ms820 KiB
21Időlimit túllépés0/3586ms820 KiB
22Időlimit túllépés0/3589ms820 KiB
23Időlimit túllépés0/3586ms820 KiB