143512025-01-10 17:06:55UVinceBináris fa magassága (50 pont)cpp17Accepted 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";
    }

}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms820 KiB
2Accepted0/020ms1076 KiB
3Accepted2/22ms820 KiB
4Accepted2/22ms820 KiB
5Accepted2/21ms820 KiB
6Accepted2/22ms820 KiB
7Accepted3/32ms820 KiB
8Accepted3/32ms820 KiB
9Accepted3/32ms820 KiB
10Accepted3/32ms820 KiB
11Accepted2/223ms1240 KiB
12Accepted2/223ms1076 KiB
13Accepted2/223ms1072 KiB
14Accepted2/223ms1268 KiB
15Accepted2/223ms1076 KiB
16Accepted2/220ms1200 KiB
17Accepted2/221ms1076 KiB
18Accepted2/221ms1068 KiB
19Accepted2/221ms1144 KiB
20Accepted3/321ms1260 KiB
21Accepted3/321ms1080 KiB
22Accepted3/320ms1036 KiB
23Accepted3/320ms1008 KiB