89212024-02-05 08:34:54AncsaBináris fa magassága (50 pont)cpp17Időlimit túllépés 2/50600ms4780 KiB
#include <iostream>
#include <cmath>
#include <bits/stdc++.h>

using namespace std;

/*
3 5
2 6
4 3
6 7
5 4
2 1


*/

int main()
{

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

    vector <long long int> fa(szam);
    vector <long long int> levelek(lszam+1);
    for(int i=0;i<=lszam;i++)
         levelek.at(i)=n-1;
    long long 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;
        int valt=mire-fa.at(hol);
        //cout<<"fa eddig"<<fa.at(hol)<<" valtoizas "<<valt<<endl;
        fa.at(hol)=mire;
        for(int i=hol*pow(2,tav)-(lszam-1);i<=(hol+1)*pow(2,tav)-lszam;i++)
        if(valt != 0)
              levelek.at(i)+=valt;

        if (valt<0)
            legnagyobb=*max_element(levelek.begin(),levelek.end());
        else
        {
            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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base2/50
1Elfogadva0/03ms1820 KiB
2Időlimit túllépés0/0600ms2112 KiB
3Elfogadva2/24ms2280 KiB
4Hibás válasz0/24ms2464 KiB
5Hibás válasz0/24ms2672 KiB
6Hibás válasz0/24ms2884 KiB
7Hibás válasz0/34ms3204 KiB
8Hibás válasz0/34ms3220 KiB
9Hibás válasz0/34ms3332 KiB
10Hibás válasz0/36ms3588 KiB
11Időlimit túllépés0/2528ms4780 KiB
12Időlimit túllépés0/2550ms3352 KiB
13Időlimit túllépés0/2561ms3516 KiB
14Időlimit túllépés0/2574ms3648 KiB
15Időlimit túllépés0/2569ms3824 KiB
16Időlimit túllépés0/2546ms3916 KiB
17Időlimit túllépés0/2546ms4092 KiB
18Időlimit túllépés0/2550ms4104 KiB
19Időlimit túllépés0/2565ms4172 KiB
20Időlimit túllépés0/3546ms4228 KiB
21Időlimit túllépés0/3561ms4288 KiB
22Időlimit túllépés0/3578ms4448 KiB
23Időlimit túllépés0/3574ms4456 KiB