```
need help...i wrote the tree house code (using greedy...map based approach) but getting wrong and in 0,1 and 6....can anyone plz check this code and let me know what I missed..
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long int t;
cin >> t;
long long int mod = 1e9 + 7;
while (t > 0)
{
map<int, vector<long long int>> m;
int n;
long long int x;
cin >> n >> x;
for (int i = 1; i < n; i++)
{
int a, b;
cin >> a >> b;
m[a].push_back(b);
}
long long int sum = x;
multimap<long long int, long long int, greater<>> m1;
unordered_map<long long int, long long int> m2;
m2[1] = x;
for (auto el1 : m)
{
for (auto el2 : el1.second)
{
// m1[m[el2].size()]=el2;
m1.insert(make_pair(m[el2].size(), el2));
//cout<<m[el2].size()<<" ";
}
// cout<<endl;
int i = 1;
x = m2[el1.first];
for (auto el3 : m1)
{
long long int g = i * x;
// cout<<"heee "<<" ";
sum = (sum + g + mod) % mod;
m2[el3.second] = g;
i++;
}
m1.clear();
}
cout << sum << endl;
t--;
}
return 0;
}
```

Hi!

My approach is very similar to that of yours.

I went through your code a couple of times, and I found this.

It fails this kind of test cases.

Test case 1:-

I/O:-

1

9 1

1 2

1 3

2 4

2 5

3 6

6 7

6 8

6 9

For this input, the actual output should be:-

17

Your code prints:-

21

Also…

The inputs taken *u,v* **does not** always mean that **u** is the parent node of **v**.

Example:-

1

9 1

1 2

**3 1**

2 4

2 5

3 6

6 7

6 8

6 9

The above test case should also print the same output i.e **17**.

I have not written my code yet.

I believe, it would give AC after making all the above changes.

Have a great day!!

2 Likes