131852025-01-06 21:58:39mateBináris fa magassága (50 pont)cpp17Time limit exceeded 20/50600ms1076 KiB
#include <bits/stdc++.h>
using namespace std;

vector <int> v;
int n,m;

void bejar(int csucs, int osszeg){
	if(2 * csucs > (1 << (n)) - 1)	return;
	v[2*csucs] = osszeg + v[csucs];
	v[2*csucs + 1] = osszeg + v[csucs];
	bejar(2*csucs, osszeg);
	bejar(2*csucs + 1, osszeg);
	
}

void update(int csucs, int osszeg){
	if(2 * csucs > (1 << (n)) - 1)	return;
	v[2*csucs] += osszeg;
	v[2*csucs + 1] += osszeg;
	//cout << v[2*csucs] << ' ' << v[2*csucs + 1] << '\n';
	update(2*csucs, osszeg);
	update(2*csucs + 1, osszeg);
	
}

int main() {
	cin.tie(0); ios::sync_with_stdio(0);
	cin >> n >> m;
	v.resize((1 << (n))+1,0);
	bejar(1,1);
	while(m--){
		int a,b; cin >> a >> b;
		int maxi = 0;
		int ossz = b - v[a] + v[a/2];
		v[a] += ossz;
		update(a,ossz);
		
		for(int i = (1 << (n-1)); i < (1 << n); i++){
			maxi = max(maxi, v[i]);
			//cout << v[i] << ' ';
		}
		cout << maxi << '\n';
		//cout << '\n';
	}

}
SubtaskSumTestVerdictTimeMemory
base20/50
1Accepted0/01ms316 KiB
2Time limit exceeded0/0583ms820 KiB
3Accepted2/21ms316 KiB
4Accepted2/22ms316 KiB
5Accepted2/21ms508 KiB
6Accepted2/21ms316 KiB
7Accepted3/31ms316 KiB
8Accepted3/31ms316 KiB
9Accepted3/31ms316 KiB
10Accepted3/31ms424 KiB
11Time limit exceeded0/2600ms944 KiB
12Time limit exceeded0/2600ms952 KiB
13Time limit exceeded0/2600ms956 KiB
14Time limit exceeded0/2575ms952 KiB
15Time limit exceeded0/2592ms948 KiB
16Time limit exceeded0/2598ms792 KiB
17Time limit exceeded0/2600ms952 KiB
18Time limit exceeded0/2587ms824 KiB
19Time limit exceeded0/2583ms696 KiB
20Time limit exceeded0/3600ms1040 KiB
21Time limit exceeded0/3600ms960 KiB
22Time limit exceeded0/3592ms1076 KiB
23Time limit exceeded0/3587ms820 KiB