190972025-11-22 22:01:29matekimado11Bináris fa magassága (50 pont)cpp17Accepted 50/50118ms1468 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n,s,k,m;
	cin>>n>>m;
	vector<int>elhossz(1<<n);
	vector<int>szum(1<<n);
	for(int i=2;i<(1<<n);i++)
	{
		elhossz[i]=1;
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=(1<<(i-1));j<(1<<i);j++)
		{
			szum[j]=n-i;

		}
	}
	for(int i=0;i<m;i++)
	{
		cin>>s>>k;
		elhossz[s]=k;
		if(s%2==0)
		{
			szum[s/2]=max(szum[s]+elhossz[s],szum[s+1]+elhossz[s+1]);
		}
		else {
			szum[s/2]=max(szum[s]+elhossz[s],szum[s-1]+elhossz[s-1]);
		}
		s/=2;
		while(s>0)
		{
			szum[s/2]=(max(szum[s]+elhossz[s],szum[s+(1-(s%2)*2)]+elhossz[s+(1-(s%2)*2)]));
			s/=2;
		}
		cout<<szum[1]<<'\n';
		
	}
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/098ms1332 KiB
3Accepted2/23ms316 KiB
4Accepted2/23ms316 KiB
5Accepted2/23ms316 KiB
6Accepted2/23ms316 KiB
7Accepted3/33ms316 KiB
8Accepted3/33ms500 KiB
9Accepted3/33ms316 KiB
10Accepted3/33ms316 KiB
11Accepted2/2112ms1468 KiB
12Accepted2/2118ms1324 KiB
13Accepted2/2118ms1316 KiB
14Accepted2/2108ms1332 KiB
15Accepted2/2114ms1468 KiB
16Accepted2/2107ms1364 KiB
17Accepted2/2111ms1320 KiB
18Accepted2/2100ms1332 KiB
19Accepted2/2111ms1332 KiB
20Accepted3/3108ms1332 KiB
21Accepted3/3111ms1332 KiB
22Accepted3/3104ms1344 KiB
23Accepted3/396ms1332 KiB