143512025-01-10 17:06:55UVinceBináris fa magassága (50 pont)cpp17Elfogadva 50/5023ms1268 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;

const int maxn=(1<<16)-1;
int n,m;

vector<int> d(maxn);
vector<int> p(maxn, 1);

void prop(int v){
    d[v]=0;
    int l=2*v;
    int r=2*v+1;
    if (l<=(1<<n)-1){
        d[v]=max(d[v],d[l]+p[l]);
    }
    if (r<=(1<<n)-1){
        d[v]=max(d[v],d[r]+p[r]);
    }
    if (v>1) prop(v/2);
}

void update(int v, int to){
    p[v]=to;
    prop(v/2);
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin>>n>>m;

    for (int i=1;i<(1<<n);i++){
        prop(i);
    }
    while (m--){
        int v,h;
        cin>>v>>h;
        update(v,h);
        cout<<d[1]<<"\n";
    }

}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms820 KiB
2Elfogadva0/020ms1076 KiB
3Elfogadva2/22ms820 KiB
4Elfogadva2/22ms820 KiB
5Elfogadva2/21ms820 KiB
6Elfogadva2/22ms820 KiB
7Elfogadva3/32ms820 KiB
8Elfogadva3/32ms820 KiB
9Elfogadva3/32ms820 KiB
10Elfogadva3/32ms820 KiB
11Elfogadva2/223ms1240 KiB
12Elfogadva2/223ms1076 KiB
13Elfogadva2/223ms1072 KiB
14Elfogadva2/223ms1268 KiB
15Elfogadva2/223ms1076 KiB
16Elfogadva2/220ms1200 KiB
17Elfogadva2/221ms1076 KiB
18Elfogadva2/221ms1068 KiB
19Elfogadva2/221ms1144 KiB
20Elfogadva3/321ms1260 KiB
21Elfogadva3/321ms1080 KiB
22Elfogadva3/320ms1036 KiB
23Elfogadva3/320ms1008 KiB