135992025-01-08 11:08:37gyjazminBináris fa magassága (50 pont)cpp17Accepted 50/50119ms1076 KiB
#include <vector>
#include <iostream>
#include <cmath>
using namespace std;
int n, m,maxi;
vector<int> f;
vector<int> sz;
void szamol(int k){
    if (k * 2 < pow(2, n)) {        
        szamol(k * 2);
        szamol(k * 2 + 1);
        int s =f[k];
        s += max(sz[k * 2], sz[k * 2 + 1]);
        sz[k] = s;
    }
}
int main()
{
    cin >> n >> m;
    f.resize(pow(2, n), 1);
    sz.resize(pow(2, n));
    szamol(1);
    for (int i = 0; i < m; i++) {
        int cs = 0, h = 0;
        cin >> cs >> h;
        int ks = h - f[cs]; 
        f[cs] = h;
        while (cs / 2 >= 1) {
            sz[cs / 2] = max(sz[cs / 2 * 2] + f[cs / 2 * 2], sz[cs / 2 * 2 + 1] + f[cs / 2 * 2 + 1]);
            cs /= 2;
        }
        cout << sz[1] << endl;
    }
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/0108ms1076 KiB
3Accepted2/23ms504 KiB
4Accepted2/23ms316 KiB
5Accepted2/23ms316 KiB
6Accepted2/23ms316 KiB
7Accepted3/33ms316 KiB
8Accepted3/33ms316 KiB
9Accepted3/33ms316 KiB
10Accepted3/33ms316 KiB
11Accepted2/2112ms956 KiB
12Accepted2/2114ms1076 KiB
13Accepted2/2116ms1012 KiB
14Accepted2/2112ms1076 KiB
15Accepted2/2119ms1004 KiB
16Accepted2/2108ms1076 KiB
17Accepted2/2108ms992 KiB
18Accepted2/2108ms948 KiB
19Accepted2/2108ms1076 KiB
20Accepted3/3108ms1076 KiB
21Accepted3/3112ms1076 KiB
22Accepted3/3108ms1072 KiB
23Accepted3/3104ms1076 KiB