CSES - Datatähti Open 2019 - Results
Submission details
Task:Binary tree
Sender:Crisp0r
Submission time:2019-01-18 12:44:39 +0200
Language:C++
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:13:25: error: 'pow' was not declared in this scope
     bool arr[(long long)pow(2,N)];
                         ^~~
input/code.cpp:13:25: note: suggested alternative: 'putw'
     bool arr[(long long)pow(2,N)];
                         ^~~
                         putw
input/code.cpp:14:16: error: 'arr' was not declared in this scope
     arrptr = &(arr[0]);
                ^~~
input/code.cpp: In function 'int labi(int)':
input/code.cpp:38:17: error: 'pow' was not declared in this scope
     if (node > (pow(2,N-1)-2)){
                 ^~~
input/code.cpp:38:17: note: suggested alternative: 'putw'
     if (node > (pow(2,N-1)-2)){
                 ^~~
                 putw
input/code.cpp:46:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

Code

#include <iostream>
#include <algorithm>

bool* arrptr;
int N;

int labi (int);

int main(){
    int M;
    std::cin >> N >> M;
    
    bool arr[(long long)pow(2,N)];
    arrptr = &(arr[0]);

    std::cout << "siin";

    for(long long i=0;i<pow(2,N);i++){
        arr[i]=1;
    }
    
    std::cout << "siin";
        
    for (int i=0;i<M;i++){
        int kylg;
        std::cin >> kylg;
        arr[kylg-1] = 0;
    }
    long long vasakud = labi(1);
    long long paremad = labi(2);
    long long tul = (vasakud*paremad)%1000000007;
    std::cout << tul*2 << '\n';

    return 0;
}

int labi (int node){
    if (node > (pow(2,N-1)-2)){
        return 1;
    } else {
        long long sum = 0;
        if (*(arrptr+node*2+1))sum += labi(node*2+1);
        if (*(arrptr+node*2+2))sum += labi(node*2+2);
        return sum%1000000007;
    }
}