98552024-03-12 11:51:18VargusBináris fa magassága (50 pont)cpp17Időlimit túllépés 20/50600ms4480 KiB
#include <iostream>
#include <queue>
#include <algorithm>
#include <cmath>
#define ll long long

using namespace std;

vector <ll> x,mag;

void magassag(ll csp, ll n)
{
	if (csp >= n)
	{
		mag[csp] = x[csp];
		return;
	}
	magassag(csp * 2, n);
	magassag(csp * 2 + 1, n);
	mag[csp] = max(mag[csp * 2], mag[csp * 2 + 1])+x[csp];
}

ll j;

int main()
{
	ll n, k;
	cin >> n >> k;
	ll csp = pow(2, n)-1;
	x.assign(csp + 1, 1);
	mag.resize(csp + 1);
	x[1] = 0;
	for (ll i = 1; i <= k; ++i)
	{
		ll a;
		cin >> j >> a;
		x[j] = a;
		magassag(1, pow(2, n-1));
		cout << mag[1]<<"\n";
	}

	return 0;
}
/*3
0 2 1 1 10 3 4*/
RészfeladatÖsszpontTesztVerdiktIdőMemória
base20/50
1Elfogadva0/03ms1872 KiB
2Időlimit túllépés0/0600ms2368 KiB
3Elfogadva2/24ms2212 KiB
4Elfogadva2/24ms2204 KiB
5Elfogadva2/24ms2428 KiB
6Elfogadva2/24ms2652 KiB
7Elfogadva3/34ms2804 KiB
8Elfogadva3/34ms2792 KiB
9Elfogadva3/34ms2796 KiB
10Elfogadva3/34ms2936 KiB
11Időlimit túllépés0/2600ms3396 KiB
12Időlimit túllépés0/2558ms3312 KiB
13Időlimit túllépés0/2580ms3476 KiB
14Időlimit túllépés0/2577ms3480 KiB
15Időlimit túllépés0/2532ms3436 KiB
16Időlimit túllépés0/2578ms3728 KiB
17Időlimit túllépés0/2558ms3668 KiB
18Időlimit túllépés0/2574ms3896 KiB
19Időlimit túllépés0/2550ms3800 KiB
20Időlimit túllépés0/3552ms3928 KiB
21Időlimit túllépés0/3555ms4072 KiB
22Időlimit túllépés0/3541ms4276 KiB
23Időlimit túllépés0/3558ms4480 KiB