:heavy_check_mark: graph_tree/distance.hpp

Required by

Verified with

Code

std::vector<int> distance(const graph& G,int start){
    std::vector<int>memo(G.size());
    auto f=[&](auto f,int v,int p,int i)->void{
        for(auto t:G[v]){
            if(t==p)continue;
            f(f,t,v,i+1);
        }
        memo[v]=i;
    };
    f(f,start,-1,0);
    return memo;
}
#line 1 "graph_tree/distance.hpp"
std::vector<int> distance(const graph& G,int start){
    std::vector<int>memo(G.size());
    auto f=[&](auto f,int v,int p,int i)->void{
        for(auto t:G[v]){
            if(t==p)continue;
            f(f,t,v,i+1);
        }
        memo[v]=i;
    };
    f(f,start,-1,0);
    return memo;
}
Back to top page