132812025-01-07 12:02:36Leventusz09Bináris fa magassága (50 pont)cpp17Futási hiba 8/502ms1076 KiB
#include <iostream>
#include <map>
#include <math.h>

using namespace std;

long N, M;

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);

    cin >> N >> M;

    long len = pow(2, N);
    long ps[len/2]; // utak
    long lv[len]; // egy csúcs utolsó szülő súlya
    for(long i=0; i<len; i++){
        ps[i] = N-1;
        lv[i] = 1;
    }

    long V, E;
    for(long _=0; _<M; _++){
        cin >> V >> E;

        // hány utat érint?
        //      -> 2 ^ (N - szint)
        // honnan kezdve?
        //      -> csúcs * 2 ^ (N - szin - 1)

        long l = log2(V) + 1; //szint
        long c = pow(2, N - l); //hány utat érint
        long s = V * c; //honnan kezdve

        for(long i=s; i<s+c; i++){
            ps[i - len/2] += E - lv[V-1];
        }
        lv[V-1] = E;

        long mx = 0;
        for(long i=0; i<len/2; i++) if(ps[i] > mx) mx = ps[i];

        cout << mx << "\n";
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base8/50
1Elfogadva0/01ms508 KiB
2Futási hiba0/01ms1076 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Futási hiba0/32ms424 KiB
8Futási hiba0/32ms316 KiB
9Futási hiba0/31ms428 KiB
10Futási hiba0/31ms316 KiB
11Futási hiba0/22ms820 KiB
12Futási hiba0/22ms820 KiB
13Futási hiba0/21ms820 KiB
14Futási hiba0/21ms820 KiB
15Futási hiba0/22ms936 KiB
16Futási hiba0/22ms844 KiB
17Futási hiba0/21ms820 KiB
18Futási hiba0/21ms820 KiB
19Futási hiba0/22ms820 KiB
20Futási hiba0/31ms820 KiB
21Futási hiba0/31ms820 KiB
22Futási hiba0/31ms820 KiB
23Futási hiba0/31ms820 KiB