130242025-01-04 18:06:21SRobBináris fa magassága (50 pont)cpp17Elfogadva 50/50120ms1080 KiB
// binaris_fa_magassaga_2024_12_29.cpp : Defines the entry point for the console application.
//

//#include "stdafx.h"

#include <vector>
#include <algorithm>
#include <iostream>
#include <cmath>

using namespace std;



int main()
{
	
	int size,O;
	size = 0;
	O = 0;
	int mE,V;
	cin >> size >> O;
	int edges[100000];
	int nodes[100000];
	
	
	int x; // while segéd
	for (int i = 1; i < pow(2, size); i++)
	{
		nodes[i] = size-floor(log2(i))-1;
		edges[i] = 1;
	}
	edges[0] = 0;
	edges[1] = 0;
	for (int i = 0; i < O; i++)
	{
		cin >> mE >> V;
		edges[mE] = V;
		x = mE;
		while (x != 1)
		{
				
			if(x % 2 == 0)
			{
  			nodes[x/2] = max((edges[x] + nodes[x]), (edges[x+1]+nodes[x+1]));
  			//cout<<"x: "<< x << "  vizsgált edge pár: " << x <<" "<<x+1<<"  vizsgált node pár: "<<nodes[x]<<" "<<nodes[x+1] <<"  a(z) "<<(x/2)<< ". változtatott node értéke: "<<nodes[x/2]<<endl;
  			x = x/2;
			}
			else
			{
				nodes[x/2] = max((edges[x] + nodes[x]), (edges[x-1]+nodes[x-1]));
  			//cout<<"x: "<< x << "  vizsgált edge pár: " << x <<" "<<x+1<<"  vizsgált node pár: "<<nodes[x]<<" "<<nodes[x+1] <<"  a(z) "<<(x/2)<< ". változtatott node értéke: "<<nodes[x/2]<<endl;
  			x = x/2;
			}
		}
	cout<< nodes[1] <<endl;
	}
	
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms320 KiB
2Elfogadva0/0105ms1080 KiB
3Elfogadva2/23ms320 KiB
4Elfogadva2/23ms320 KiB
5Elfogadva2/23ms500 KiB
6Elfogadva2/23ms320 KiB
7Elfogadva3/33ms320 KiB
8Elfogadva3/33ms508 KiB
9Elfogadva3/33ms320 KiB
10Elfogadva3/33ms320 KiB
11Elfogadva2/2120ms932 KiB
12Elfogadva2/2115ms952 KiB
13Elfogadva2/2119ms928 KiB
14Elfogadva2/2112ms1080 KiB
15Elfogadva2/2115ms1080 KiB
16Elfogadva2/2112ms1080 KiB
17Elfogadva2/2112ms940 KiB
18Elfogadva2/2104ms1036 KiB
19Elfogadva2/2108ms976 KiB
20Elfogadva3/3115ms1080 KiB
21Elfogadva3/3114ms1080 KiB
22Elfogadva3/3104ms1080 KiB
23Elfogadva3/3103ms1080 KiB