135412025-01-08 09:35:28csdavidBináris fa magassága (50 pont)cpp17Accepted 50/50112ms1080 KiB
#include <iostream>
#include <cmath>
using namespace std;

struct csucs{
    int hossz=1, magassag;
    int osszeg(){
        return hossz+magassag;
    }
};

int main()
{
    int n, ag, uj;
    cin >> n;
    n=pow(2, n);
    csucs a[n];
    for(int i=n-1; i>0; i--){
        a[i].hossz=1;
        if(i*2>=n){
            a[i].magassag=0;
        }
        else{
            a[i].magassag=max(a[i*2].osszeg(), a[i*2+1].osszeg());
        }
    }
    int k;
    cin >> k;
    while(k--){
        cin >> ag >> uj;
        a[ag].hossz=uj;
        ag=ag/2;
        while(ag>0){
            a[ag].magassag=max(a[ag*2].osszeg(), a[ag*2+1].osszeg());
            ag=ag/2;
        }
        cout << a[1].magassag << '\n';
    }
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms508 KiB
2Accepted0/0104ms1076 KiB
3Accepted2/23ms500 KiB
4Accepted2/23ms316 KiB
5Accepted2/23ms316 KiB
6Accepted2/23ms316 KiB
7Accepted3/33ms316 KiB
8Accepted3/33ms316 KiB
9Accepted3/33ms316 KiB
10Accepted3/33ms316 KiB
11Accepted2/2108ms924 KiB
12Accepted2/2108ms936 KiB
13Accepted2/2112ms920 KiB
14Accepted2/2107ms1076 KiB
15Accepted2/2108ms824 KiB
16Accepted2/2104ms1076 KiB
17Accepted2/2109ms964 KiB
18Accepted2/2101ms1076 KiB
19Accepted2/2104ms1076 KiB
20Accepted3/3104ms1080 KiB
21Accepted3/3108ms1076 KiB
22Accepted3/3104ms1076 KiB
23Accepted3/397ms1076 KiB