120082024-11-24 16:16:35banhelyiBináris fa magassága (50 pont)cpp17Időlimit túllépés 20/50600ms756 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);

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

        fa[a-1] = b;
        
    	unsigned long int legnagyobb = 0;

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

        cout << legnagyobb << "\n";

    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base20/50
1Elfogadva0/01ms320 KiB
2Időlimit túllépés0/0587ms756 KiB
3Elfogadva2/23ms320 KiB
4Elfogadva2/23ms320 KiB
5Elfogadva2/23ms512 KiB
6Elfogadva2/23ms320 KiB
7Elfogadva3/33ms320 KiB
8Elfogadva3/33ms320 KiB
9Elfogadva3/34ms320 KiB
10Elfogadva3/34ms320 KiB
11Időlimit túllépés0/2600ms688 KiB
12Időlimit túllépés0/2598ms684 KiB
13Időlimit túllépés0/2600ms688 KiB
14Időlimit túllépés0/2583ms568 KiB
15Időlimit túllépés0/2587ms756 KiB
16Időlimit túllépés0/2592ms568 KiB
17Időlimit túllépés0/2592ms568 KiB
18Időlimit túllépés0/2582ms756 KiB
19Időlimit túllépés0/2578ms568 KiB
20Időlimit túllépés0/3583ms568 KiB
21Időlimit túllépés0/3600ms568 KiB
22Időlimit túllépés0/3584ms568 KiB
23Időlimit túllépés0/3574ms568 KiB