132162025-01-07 09:01:02AblablablaBináris fa magassága (50 pont)cpp17Időlimit túllépés 20/50600ms1260 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n, m;
    cin >> n >> m;

    int szam = (1 << n) - 1;
    vector<int> magas(szam + 1, 0);
    vector<int> szulo(szam + 1, 1);

    magas[1] = 0;
    for(int i = 2; i <= szam; i++){
        magas[i] = magas[i/2] + szulo[i];
    }

    int ans = n - 1;

    while(m--){
        int a, b;
        cin >> a >> b;

        queue<int> bejar;
        bejar.push(a);
        szulo[a] = b;

        while(!bejar.empty()){
            int akt = bejar.front();
            bejar.pop();

            if(akt > szam) continue;

            magas[akt] = magas[akt/2] + szulo[akt];

            bejar.push(2 * akt);
            bejar.push(2 * akt + 1);
        }

        ans = 0;
        for(int i = szam / 2 + 1; i <= szam; i++){
            ans = max(ans, magas[i]);
        }
        cout << ans << "\n";
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base20/50
1Elfogadva0/01ms316 KiB
2Időlimit túllépés0/0595ms1076 KiB
3Elfogadva2/23ms316 KiB
4Elfogadva2/23ms316 KiB
5Elfogadva2/23ms500 KiB
6Elfogadva2/23ms316 KiB
7Elfogadva3/33ms316 KiB
8Elfogadva3/33ms328 KiB
9Elfogadva3/34ms316 KiB
10Elfogadva3/34ms316 KiB
11Időlimit túllépés0/2598ms936 KiB
12Időlimit túllépés0/2600ms820 KiB
13Időlimit túllépés0/2600ms940 KiB
14Időlimit túllépés0/2584ms936 KiB
15Időlimit túllépés0/2588ms1140 KiB
16Időlimit túllépés0/2591ms1084 KiB
17Időlimit túllépés0/2591ms1076 KiB
18Időlimit túllépés0/2586ms1260 KiB
19Időlimit túllépés0/2591ms1080 KiB
20Időlimit túllépés0/3592ms1076 KiB
21Időlimit túllépés0/3592ms1076 KiB
22Időlimit túllépés0/3577ms1076 KiB
23Időlimit túllépés0/3584ms1076 KiB