192592025-12-03 09:55:27szabelrBináris fa magassága (50 pont)cpp17Hibás válasz 0/50118ms1116 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]=1;
    }
    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/0104ms824 KiB
3Hibás válasz0/23ms756 KiB
4Hibás válasz0/23ms748 KiB
5Hibás válasz0/23ms564 KiB
6Hibás válasz0/23ms564 KiB
7Hibás válasz0/33ms564 KiB
8Hibás válasz0/33ms564 KiB
9Hibás válasz0/33ms564 KiB
10Hibás válasz0/33ms564 KiB
11Hibás válasz0/2118ms980 KiB
12Hibás válasz0/2118ms928 KiB
13Hibás válasz0/2112ms980 KiB
14Hibás válasz0/2112ms820 KiB
15Hibás válasz0/2115ms1100 KiB
16Hibás válasz0/2114ms1116 KiB
17Hibás válasz0/2114ms940 KiB
18Hibás válasz0/2104ms1072 KiB
19Hibás válasz0/2112ms936 KiB
20Hibás válasz0/3111ms952 KiB
21Hibás válasz0/3114ms820 KiB
22Hibás válasz0/3103ms1012 KiB
23Hibás válasz0/3104ms824 KiB