192602025-12-03 09:56:11szabelrBináris fa magassága (50 pont)cpp17Elfogadva 50/50119ms1092 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)<<endl;
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms564 KiB
2Elfogadva0/0107ms1076 KiB
3Elfogadva2/23ms564 KiB
4Elfogadva2/23ms564 KiB
5Elfogadva2/23ms564 KiB
6Elfogadva2/23ms564 KiB
7Elfogadva3/33ms564 KiB
8Elfogadva3/33ms564 KiB
9Elfogadva3/33ms564 KiB
10Elfogadva3/34ms564 KiB
11Elfogadva2/2119ms932 KiB
12Elfogadva2/2115ms928 KiB
13Elfogadva2/2119ms940 KiB
14Elfogadva2/2109ms1076 KiB
15Elfogadva2/2115ms1092 KiB
16Elfogadva2/2115ms936 KiB
17Elfogadva2/2115ms1076 KiB
18Elfogadva2/2107ms1076 KiB
19Elfogadva2/2108ms1076 KiB
20Elfogadva3/3109ms1076 KiB
21Elfogadva3/3109ms1076 KiB
22Elfogadva3/3104ms1076 KiB
23Elfogadva3/3104ms1072 KiB