190972025-11-22 22:01:29matekimado11Bináris fa magassága (50 pont)cpp17Elfogadva 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';
		
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/098ms1332 KiB
3Elfogadva2/23ms316 KiB
4Elfogadva2/23ms316 KiB
5Elfogadva2/23ms316 KiB
6Elfogadva2/23ms316 KiB
7Elfogadva3/33ms316 KiB
8Elfogadva3/33ms500 KiB
9Elfogadva3/33ms316 KiB
10Elfogadva3/33ms316 KiB
11Elfogadva2/2112ms1468 KiB
12Elfogadva2/2118ms1324 KiB
13Elfogadva2/2118ms1316 KiB
14Elfogadva2/2108ms1332 KiB
15Elfogadva2/2114ms1468 KiB
16Elfogadva2/2107ms1364 KiB
17Elfogadva2/2111ms1320 KiB
18Elfogadva2/2100ms1332 KiB
19Elfogadva2/2111ms1332 KiB
20Elfogadva3/3108ms1332 KiB
21Elfogadva3/3111ms1332 KiB
22Elfogadva3/3104ms1344 KiB
23Elfogadva3/396ms1332 KiB