127572024-12-29 22:18:07SRobBináris fa magassága (50 pont)cpp17Time limit exceeded 20/50597ms4852 KiB
// binaris_fa_magassaga_2024_12_29.cpp : Defines the entry point for the console application.
//

//#include "stdafx.h"

#include <vector>
#include <math.h>
#include <iostream>
#include <cmath>

using namespace std;

void TreeCheck(int i, int curr, int size, vector<int> edges ,vector<int>& vegyertek) // megszerzi az egyik vegyérték elemig tartó magasságot
{// az & azért kell mivel anélkül a pass by value elv miatt csak a vegyertek másolatait adná tovább és azt változtatná a függvény, nem az eredetit változtatja, így magát az eredeti tömböt/listát változtatja
	if (int(floor(log2(i))) < size-1 && i < edges.size())
	{
		    curr += edges[i];
		    TreeCheck(i*2,curr,size,edges, vegyertek);
        TreeCheck(i*2 + 1,curr,size,edges, vegyertek);
	}
  else if(int(floor(log2(i))) == size-1 && i < edges.size())
  {
    	  curr += edges[i];
    	  
    	  vegyertek[i-pow(2,size-1)] = curr;
    	  
  }
}

int main()
{
	
	int size,O;
	size = 0;
	O = 0;
	cin >> size >> O;
	vector<int> edges(pow(2,size)-2 + 2); // szar az indexelés a TreeCheck-ben
  vector<int> vegyertek(pow(2,size-1));
  edges[0,1] = 0; 
	for (int i = 0; i < pow(2,size)-2+2; i++) // az EGÉSZ EDGES tömböt 2-től indexeljük
	{
		edges[i+2] = 1;
	}
	for (int i = 0; i < pow(2,size-1); i++) // 
	{
		vegyertek[i] = 0;
	}
	//műveletek beolv és feladat megoldása a cikluson belül (még hiányzik a ciklus!)
	int mE, v, max; 
	//  mostaniEdge, változtatás
	for (int i = 0; i < O; i++) // az EGÉSZ EDGES tömböt 2-től indexeljük
	{
    		cin >> mE >> v;
    	edges[mE] = v;
    	TreeCheck(2,0,size,edges,vegyertek);
    	TreeCheck(3,0,size,edges,vegyertek);
    	
    	max = vegyertek[0];
    	for (int i = 1; i < pow(2,size-1) ; i++) //ell kiírás
    	{
    		if(vegyertek[i] > max)
    		{
    		  max = vegyertek[i];
    		}
    	}
    	cout<<max<< endl;
	}
	
	
}
  
SubtaskSumTestVerdictTimeMemory
base20/50
1Accepted0/01ms320 KiB
2Time limit exceeded0/0587ms4688 KiB
3Accepted2/23ms320 KiB
4Accepted2/24ms320 KiB
5Accepted2/24ms556 KiB
6Accepted2/24ms320 KiB
7Accepted3/38ms384 KiB
8Accepted3/314ms500 KiB
9Accepted3/330ms508 KiB
10Accepted3/330ms320 KiB
11Time limit exceeded0/2597ms4688 KiB
12Time limit exceeded0/2597ms4688 KiB
13Time limit exceeded0/2597ms4692 KiB
14Time limit exceeded0/2582ms4676 KiB
15Time limit exceeded0/2588ms4700 KiB
16Time limit exceeded0/2597ms4700 KiB
17Time limit exceeded0/2597ms4692 KiB
18Time limit exceeded0/2586ms4852 KiB
19Time limit exceeded0/2587ms4688 KiB
20Time limit exceeded0/3597ms4696 KiB
21Time limit exceeded0/3597ms4700 KiB
22Time limit exceeded0/3577ms4692 KiB
23Time limit exceeded0/3586ms4692 KiB