198492025-12-26 08:08:52KristófBináris fa magassága (50 pont)cpp17Accepted 50/50118ms1536 KiB
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
vector<int> fa;
vector<int> dist;

void change(int s)
{
s>>=1;
while(s)
    {
    int bal,jobb;
    bal=s<<1;
    jobb=bal+1;
    //cout<<fa[bal]<<" "<<dist[bal]<<" "<<bal<<"\n";
    if(fa[s]==max(fa[bal]+dist[bal],fa[jobb]+dist[jobb]))
        {
        return;
        }
    //cout<<"alma\n";
    fa[s]=max(fa[bal]+dist[bal],fa[jobb]+dist[jobb]);
    s>>=1;
    }
}

int main()
{
    int n,k;
    cin>>n>>k;
    fa.assign(pow(2,n),0);
    dist.assign(pow(2,n),1);
    for(int i=pow(2,n-1);i<pow(2,n);i++)change(i);
    int csucs,tav;
    for(int i=0;i<k;i++)
        {
        cin>>csucs>>tav;
        dist[csucs]=tav;
        change(csucs);
        cout<<fa[1]<<"\n";
        }
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms508 KiB
2Accepted0/0103ms1076 KiB
3Accepted2/23ms316 KiB
4Accepted2/23ms316 KiB
5Accepted2/23ms508 KiB
6Accepted2/23ms316 KiB
7Accepted3/33ms408 KiB
8Accepted3/33ms316 KiB
9Accepted3/33ms316 KiB
10Accepted3/33ms316 KiB
11Accepted2/2112ms1024 KiB
12Accepted2/2118ms1536 KiB
13Accepted2/2118ms1364 KiB
14Accepted2/2114ms1076 KiB
15Accepted2/2115ms1076 KiB
16Accepted2/2111ms1456 KiB
17Accepted2/2112ms1316 KiB
18Accepted2/2101ms1328 KiB
19Accepted2/2107ms1072 KiB
20Accepted3/3108ms1012 KiB
21Accepted3/3112ms928 KiB
22Accepted3/3108ms1076 KiB
23Accepted3/3103ms1072 KiB