89192024-02-05 08:15:48AncsaBináris fa magassága (50 pont)cpp17Wrong answer 0/50600ms4576 KiB
#include <iostream>
#include <cmath>
#include <bits/stdc++.h>

using namespace std;

int main()
{

    int n;
    cin>>n;
    int lszam=pow(2,n-1), szam=2*lszam;

    vector <int> fa(szam);
    vector <int> levelek(lszam+1);
    for(int i=0;i<=lszam;i++)
         levelek.at(i)=n-1;
    int legnagyobb=n-1;
    fa.at(1)=0;
    for (int i=2;i<szam;i++)
        fa.at(i)=1;
    int muv;
    cin >>muv;
    //vector<int> kimenet(muv);
    int hol, mire;
    for (int i=0;i<muv;i++)
    {
        cin>>hol>>mire;
        int szint =(int)log2(hol)+1;
        int tav=n-szint, valt=mire-fa.at(hol);
        fa.at(hol)=mire;
        for(int i=hol*pow(2,tav)-(lszam-1);i<=(hol+1)*pow(2,tav)-lszam;i++)
            if(mire != 0)
              levelek.at(i)+=valt;
        int ujnagy = *max_element(levelek.begin()+hol*pow(2,tav)-(lszam-1),levelek.begin()+(hol+1)*pow(2,tav)-lszam);
        if (ujnagy>legnagyobb)
            legnagyobb=ujnagy;
        cout<<legnagyobb<<endl;
    }
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base0/50
1Wrong answer0/03ms1812 KiB
2Time limit exceeded0/0600ms1656 KiB
3Wrong answer0/24ms2224 KiB
4Wrong answer0/24ms2436 KiB
5Wrong answer0/24ms2692 KiB
6Wrong answer0/24ms2856 KiB
7Wrong answer0/34ms2960 KiB
8Wrong answer0/34ms3068 KiB
9Wrong answer0/34ms3300 KiB
10Wrong answer0/34ms3388 KiB
11Wrong answer0/286ms4216 KiB
12Wrong answer0/286ms4444 KiB
13Wrong answer0/2104ms4488 KiB
14Wrong answer0/2128ms4488 KiB
15Wrong answer0/286ms4576 KiB
16Time limit exceeded0/2564ms3696 KiB
17Time limit exceeded0/2565ms3636 KiB
18Time limit exceeded0/2522ms3540 KiB
19Time limit exceeded0/2554ms3552 KiB
20Time limit exceeded0/3561ms3628 KiB
21Time limit exceeded0/3555ms3760 KiB
22Time limit exceeded0/3582ms3600 KiB
23Time limit exceeded0/3574ms3600 KiB