120032024-11-24 15:57:13banhelyiBináris fa magassága (50 pont)cpp17Hibás válasz 0/50600ms788 KiB
#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

int main()
{
    int n = 0;
    int m = 0;
    cin >> n;
    cin >> m;
    long int a;
    long int b;

    unsigned long int fameret=((long int)1 << n) - 1;
    int *fa= new int[fameret];
    for(unsigned long int i=0; i < fameret; i++){
        fa[i] = 1;
    }

    unsigned long int levelmeret=(long int)1 << (n-1);
    //unsigned long int *level=new unsigned long int[levelmeret];
    //for(unsigned long int i=0; i < levelmeret; i++){
    //    level[i] = n-1;
    //}

    for(unsigned long int k=0; k < m; k++){
        cin >> a;
        cin >> b;

        int valt = b - fa[a-1];
        fa[a-1] = b;
        
	unsigned long int elso=a;
        unsigned long int db=1;
        while (elso*2<fameret){
            elso*=2;
            db*=2;
        }
        
	//for(unsigned long int j=0; j < db; j++){
        //    level[elso-levelmeret+j] += valt;
        //}
        
	unsigned long int legnagyobb = 0;

        for(unsigned long int i = 0; i < levelmeret; i++){
	    unsigned long int level = levelmeret+i;
	    unsigned long int osszeg = 0;
	    while (level>0) {
		osszeg+=fa[level];
		level >>=1;
	    }
		
            if(osszeg > legnagyobb){
                legnagyobb = osszeg;
            }
        }

        cout << legnagyobb << "\n";

    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/01ms508 KiB
2Időlimit túllépés0/0577ms568 KiB
3Hibás válasz0/23ms320 KiB
4Hibás válasz0/23ms320 KiB
5Hibás válasz0/22ms320 KiB
6Hibás válasz0/23ms320 KiB
7Hibás válasz0/33ms320 KiB
8Hibás válasz0/33ms320 KiB
9Hibás válasz0/34ms320 KiB
10Hibás válasz0/34ms320 KiB
11Időlimit túllépés0/2598ms688 KiB
12Időlimit túllépés0/2598ms680 KiB
13Időlimit túllépés0/2600ms680 KiB
14Időlimit túllépés0/2583ms568 KiB
15Időlimit túllépés0/2587ms748 KiB
16Időlimit túllépés0/2587ms568 KiB
17Időlimit túllépés0/2587ms568 KiB
18Időlimit túllépés0/2591ms568 KiB
19Időlimit túllépés0/2575ms568 KiB
20Időlimit túllépés0/3575ms568 KiB
21Időlimit túllépés0/3578ms788 KiB
22Időlimit túllépés0/3588ms568 KiB
23Időlimit túllépés0/3579ms748 KiB