192582025-12-03 09:52:17szabelrBináris fa magassága (50 pont)cpp17Hibás válasz 0/50118ms1076 KiB
#include <iostream>
#include <cmath>

using namespace std;
int check(int x,int dist[],int best[])
{
    while(x>0)
    {
        best[x]=max(dist[2*x]+best[x*2],dist[2*x+1]+best[x*2+1]);
        x=x/2;
    }
    return best[1];
}
int main()
{
    int dist[65537]{1};
    int best[65537];
    int n,m;
    cin>>n>>m;
    int i=1;
    int x=n-1;
    int a=1;
    while(i<pow(2,n))
    {
        if(i==pow(2,a))
        {
            x--;
            a++;
        }

        best[i]=x;
        i++;
    }
    for(int i=0; i<pow(2,n); i++)
    {
        dist[i]=0;
    }
    int b,c;
    for(int i=0; i<m; i++)
    {
        cin>>b>>c;
        dist[b]=c;
        cout<<check(b/2,dist,best);
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/01ms564 KiB
2Hibás válasz0/0104ms960 KiB
3Hibás válasz0/23ms748 KiB
4Hibás válasz0/23ms564 KiB
5Hibás válasz0/23ms564 KiB
6Hibás válasz0/23ms656 KiB
7Hibás válasz0/33ms604 KiB
8Hibás válasz0/33ms564 KiB
9Hibás válasz0/33ms644 KiB
10Hibás válasz0/33ms564 KiB
11Hibás válasz0/2118ms936 KiB
12Hibás válasz0/2118ms916 KiB
13Hibás válasz0/2114ms908 KiB
14Hibás válasz0/2109ms824 KiB
15Hibás válasz0/2115ms820 KiB
16Hibás válasz0/2114ms820 KiB
17Hibás válasz0/2114ms1004 KiB
18Hibás válasz0/2104ms1076 KiB
19Hibás válasz0/2109ms1072 KiB
20Hibás válasz0/3114ms1004 KiB
21Hibás válasz0/3115ms820 KiB
22Hibás válasz0/3104ms936 KiB
23Hibás válasz0/3104ms820 KiB