my code (please criticize it this is my first time dealing with trees): ```c++ #include using namespace std; using ll = long long; using ull = unsigned long long; using ld = long double; using u32 = unsigned int; int main(){ // the pair here means "the number" and "it's parent in map[i-1] index" vector>> mp = { {{1, -1},}, {{2, 0},}, },; bool l = 0; unordered_map mn; int target; cin >> target; int d = target-2; long long result = 0; // the target number (200 in the PE case): // building the tree: cout pointer: mp[i]) { // traverse from the current node until we reach -1 // build a vector of values stack values; values.push(pointer.first); int t = pointer.second; for(int j = i-1; j >= 0 ; j--){ pair k = mp[jt]; values.push(k.first); t = k.second; }, if(mp.size() < i+2) mp.resize(i+2); // pushing the values into the tree structure (and traversing ( )) while(!values.empty()) { int g = pointer.first + values.top(); if(g <= target) { mp[i+1].push_back({g, ind},); if(!mn.contains(g)) { mn[g] = i+1; d--; //cout << target-d << " Found out of " << target << '\n'; if(d == 0) {l=1; break;}, }, }, values.pop(); }, ind++; if(l) break; }, if(l) break; }, for(auto [k, v]: mn) { //cout << k << " " << v << endl; result += v; }, cout << result + 1; },```
How long did this take with 200 as input?