123082024-12-11 19:13:54ercseferencBináris fa magassága (50 pont)cpp17Hibás válasz 0/50600ms968 KiB
#include <iostream>
#include <cmath>
int szint(int n){
    int s=0;
    while(n!=0){
        n=n/2; s++;}
    return s;}
int polc(int n, int p){
    for(int i=0; i<p; i++){n=2*n+1;} return n;}
using namespace std;
int main()
{
    int n,m,cs,v,k,r;
    int c=pow(2,n-1)-1;
    cin>>n; cin>>m;
    int p=pow(2,n-1)+1;
    int a[p]; for(int i=1; i<=p; i++){a[i]=n-1;}
    int q=pow(2,n);
    int b[q]; for(int i=2; i<q; i++){b[i]=1;}
    a[0]=0; b[0]=0; b[1]=0;
    for(int i=0; i<m; i++){
        cin>>cs; cin>>v;
        k=v-b[cs];
        b[cs]=v;
        for(int j=cs*pow(2,n-szint(cs))-c; j<=polc(cs,n-szint(cs))-c; j++)
            {a[i]=a[i]+k;}
        r=0;
        for(int j=1; j<p;j++){if(a[j]>r)r=a[j];}
        cout<<r<<endl;}
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/01ms320 KiB
2Időlimit túllépés0/0584ms824 KiB
3Futási hiba0/21ms320 KiB
4Időlimit túllépés0/2584ms320 KiB
5Futási hiba0/21ms320 KiB
6Futási hiba0/21ms500 KiB
7Futási hiba0/31ms396 KiB
8Futási hiba0/31ms500 KiB
9Futási hiba0/31ms320 KiB
10Futási hiba0/32ms320 KiB
11Időlimit túllépés0/2592ms968 KiB
12Időlimit túllépés0/2600ms824 KiB
13Időlimit túllépés0/2580ms824 KiB
14Időlimit túllépés0/2589ms568 KiB
15Időlimit túllépés0/2583ms792 KiB
16Időlimit túllépés0/2600ms792 KiB
17Időlimit túllépés0/2578ms792 KiB
18Időlimit túllépés0/2573ms784 KiB
19Időlimit túllépés0/2589ms824 KiB
20Időlimit túllépés0/3574ms824 KiB
21Időlimit túllépés0/3598ms788 KiB
22Időlimit túllépés0/3575ms796 KiB
23Időlimit túllépés0/3583ms756 KiB