150892025-02-12 18:03:53iSamu7598Bináris fa magassága (50 pont)cpp17Elfogadva 50/50101ms1076 KiB
#include <bits/stdc++.h>
#define speed cin.tie(0); ios::sync_with_stdio(0)
using namespace std;


vector<int> ossz;
vector<int> el;
int x;

/*int n, k;
int v[70000];
int KettoAzNediken;
void valtozas (int melyik, int valto){
v[melyik]=v[melyik]+valto;
if(2*melyik<KettoAzNediken){
    valtozas(2*melyik, valto);
    valtozas(2*melyik+1, valto);
}
}*/


int ujaraszamolas(int a){
if(2*a>=x){
        ossz[a]=0;
    return 0;
}
if(ossz[a]==-1){
ossz[a]=max(
            ujaraszamolas(2*a)+el[2*a],
            ujaraszamolas(2*a+1)+el[2*a+1]
            );
}

return ossz[a];
}

int main()
{

speed;

    int n, k;

    cin>>n>>k;
    x=(1<<n);

    el.assign(x+1, 1);
    ossz.assign(x+1, -1);
    el[0]=0;
    ossz[0]=0;
    int melyik, mennyi;
    for(int i=1; i<=x; i++){

    }
    while(k--){
        cin>>melyik>>mennyi;
el[melyik]=mennyi;

        for(int i=melyik; i>0; i=i/2){
            ossz[i]=-1;
        }

cout<<ujaraszamolas(1)<<endl;

    }



   /* cin>>n>>k;
KettoAzNediken=pow(2, n);
    v[1]=0;
    for(int i=2; i<=KettoAzNediken; i++){
        v[i]=v[i/2]+1;

    }
int melyik, mennyi;
for(int i=1; i<=k; i++){
    cin>>melyik>>mennyi;
    int valto=mennyi-(v[melyik]-v[melyik/2]);
    valtozas(melyik, valto);
    int maxi=0;
    for(int i=1; i<KettoAzNediken; i++){
    maxi=max(maxi, v[i]);
}
cout<<maxi<<endl;
}*/


    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/093ms1076 KiB
3Elfogadva2/22ms316 KiB
4Elfogadva2/23ms316 KiB
5Elfogadva2/23ms316 KiB
6Elfogadva2/23ms328 KiB
7Elfogadva3/33ms316 KiB
8Elfogadva3/33ms316 KiB
9Elfogadva3/33ms316 KiB
10Elfogadva3/32ms316 KiB
11Elfogadva2/297ms964 KiB
12Elfogadva2/2101ms1012 KiB
13Elfogadva2/297ms976 KiB
14Elfogadva2/293ms980 KiB
15Elfogadva2/296ms1076 KiB
16Elfogadva2/293ms1076 KiB
17Elfogadva2/297ms976 KiB
18Elfogadva2/290ms1076 KiB
19Elfogadva2/292ms976 KiB
20Elfogadva3/398ms1076 KiB
21Elfogadva3/392ms1004 KiB
22Elfogadva3/392ms980 KiB
23Elfogadva3/386ms1076 KiB