127572024-12-29 22:18:07SRobBináris fa magassága (50 pont)cpp17Időlimit túllépés 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;
	}
	
	
}
  
RészfeladatÖsszpontTesztVerdiktIdőMemória
base20/50
1Elfogadva0/01ms320 KiB
2Időlimit túllépés0/0587ms4688 KiB
3Elfogadva2/23ms320 KiB
4Elfogadva2/24ms320 KiB
5Elfogadva2/24ms556 KiB
6Elfogadva2/24ms320 KiB
7Elfogadva3/38ms384 KiB
8Elfogadva3/314ms500 KiB
9Elfogadva3/330ms508 KiB
10Elfogadva3/330ms320 KiB
11Időlimit túllépés0/2597ms4688 KiB
12Időlimit túllépés0/2597ms4688 KiB
13Időlimit túllépés0/2597ms4692 KiB
14Időlimit túllépés0/2582ms4676 KiB
15Időlimit túllépés0/2588ms4700 KiB
16Időlimit túllépés0/2597ms4700 KiB
17Időlimit túllépés0/2597ms4692 KiB
18Időlimit túllépés0/2586ms4852 KiB
19Időlimit túllépés0/2587ms4688 KiB
20Időlimit túllépés0/3597ms4696 KiB
21Időlimit túllépés0/3597ms4700 KiB
22Időlimit túllépés0/3577ms4692 KiB
23Időlimit túllépés0/3586ms4692 KiB