198492025-12-26 08:08:52KristófBináris fa magassága (50 pont)cpp17Elfogadva 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms508 KiB
2Elfogadva0/0103ms1076 KiB
3Elfogadva2/23ms316 KiB
4Elfogadva2/23ms316 KiB
5Elfogadva2/23ms508 KiB
6Elfogadva2/23ms316 KiB
7Elfogadva3/33ms408 KiB
8Elfogadva3/33ms316 KiB
9Elfogadva3/33ms316 KiB
10Elfogadva3/33ms316 KiB
11Elfogadva2/2112ms1024 KiB
12Elfogadva2/2118ms1536 KiB
13Elfogadva2/2118ms1364 KiB
14Elfogadva2/2114ms1076 KiB
15Elfogadva2/2115ms1076 KiB
16Elfogadva2/2111ms1456 KiB
17Elfogadva2/2112ms1316 KiB
18Elfogadva2/2101ms1328 KiB
19Elfogadva2/2107ms1072 KiB
20Elfogadva3/3108ms1012 KiB
21Elfogadva3/3112ms928 KiB
22Elfogadva3/3108ms1076 KiB
23Elfogadva3/3103ms1072 KiB