Your code here...↵
using namespace std;↵
typedef long long ll;↵
ll dfs(int u)↵
{↵
if(son[u]==0)↵
return value[u];↵
if(son[u]==1)↵
return (value[u]+dfs(v))>>1;↵
if(son[u]>1)↵
{↵
ll minn=MAX_LONG_LONG;↵
for(v|u->v)↵
{↵
minn=min(dfs(v),minn);↵
}↵
return minn;↵
}↵
}↵
int main()↵
{↵
cout<<value[1]+dfs(1)<<endl;↵
return 0;↵
}↵
~~~~~↵