85472024-01-21 18:50:33HorakZsofiBináris fa magassága (50 pont)cpp17Elfogadva 50/50120ms5300 KiB
#include <bits/stdc++.h>
using namespace std;
vector<int>plusz;
vector<int>maxi;
long long fuggveny(int x) {
	maxi[x]=max(maxi[2*x]+plusz[2*x], maxi[2*x+1]+plusz[2*x+1]);
	if(x==1){
		return maxi[1]+plusz[1];
	}else{
		return fuggveny(x/2);
	}
}
int main() {
	int n, t;
	cin>>n>>t;
	plusz.resize((1<<n), 0);
	maxi.resize((1<<n), 0);

	for(int i=2; i<(1<<n); i++){
		plusz[i]++;
		
			fuggveny(i/2);
		
	}
	for(int i=0; i<t; i++){
		int a, b;
		cin>>a>>b;
		plusz[a]=b;
		cout<<fuggveny(a/2)<<endl;
	}

}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/03ms2020 KiB
2Elfogadva0/081ms3000 KiB
3Elfogadva2/24ms2292 KiB
4Elfogadva2/24ms2292 KiB
5Elfogadva2/24ms2420 KiB
6Elfogadva2/24ms2660 KiB
7Elfogadva3/34ms2844 KiB
8Elfogadva3/34ms2912 KiB
9Elfogadva3/34ms2888 KiB
10Elfogadva3/34ms3012 KiB
11Elfogadva2/2104ms4056 KiB
12Elfogadva2/287ms4268 KiB
13Elfogadva2/286ms4484 KiB
14Elfogadva2/2120ms4704 KiB
15Elfogadva2/286ms4780 KiB
16Elfogadva2/282ms4780 KiB
17Elfogadva2/282ms4780 KiB
18Elfogadva2/283ms4884 KiB
19Elfogadva2/282ms4880 KiB
20Elfogadva3/385ms4880 KiB
21Elfogadva3/382ms5004 KiB
22Elfogadva3/385ms5092 KiB
23Elfogadva3/382ms5300 KiB