90532024-02-13 11:07:23akososkaBináris fa magassága (50 pont)cpp17Hibás válasz 0/503ms3452 KiB
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;
int n,m;

int main()
{
    ifstream f("be.in");
    f>>n;
    f>>m;
    int cs,h,t=pow(2,n),par;
    int a[2*t],b[2*t];
    for(int i=2;i<2*t;i++){
        a[i]=1;
    }
    a[1]=0;
    int s=1;
    for(int j=0;j<n;j++){
        for(int i=1;i<=pow(2,j);i++){
            b[s]=n-j-1;
            s++;
        }
    }
    for(int i=1;i<=m;i++){
        f>>cs;
        f>>h;
        a[cs]=h;
        if(h>a[cs]){
            while(cs!=1 && b[cs]+a[cs]>b[cs/2]){
                b[cs/2]=b[cs]+a[cs];
                cs=cs/2;
            }
        }
        else{
            while(cs!=1){
                if(cs%2==0)par=cs+1;
                else par=cs-1;
                if(b[cs]+a[cs]>b[par]+a[par])b[cs/2]=b[cs]+a[cs];
                else b[cs/2]=b[par]+a[par];
                cs=cs/2;
            }
        }
        cout<<b[1]<<endl;
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/03ms1808 KiB
2Hibás válasz0/03ms2060 KiB
3Hibás válasz0/23ms2332 KiB
4Hibás válasz0/23ms2420 KiB
5Hibás válasz0/23ms2676 KiB
6Hibás válasz0/22ms2660 KiB
7Hibás válasz0/32ms2720 KiB
8Hibás válasz0/33ms2848 KiB
9Hibás válasz0/32ms2824 KiB
10Hibás válasz0/32ms2828 KiB
11Hibás válasz0/22ms2956 KiB
12Hibás válasz0/22ms2828 KiB
13Hibás válasz0/22ms2828 KiB
14Hibás válasz0/23ms2956 KiB
15Hibás válasz0/22ms2896 KiB
16Hibás válasz0/23ms3120 KiB
17Hibás válasz0/22ms3104 KiB
18Hibás válasz0/23ms3336 KiB
19Hibás válasz0/22ms3448 KiB
20Hibás válasz0/32ms3336 KiB
21Hibás válasz0/32ms3436 KiB
22Hibás válasz0/32ms3348 KiB
23Hibás válasz0/32ms3452 KiB