#include #include #include #include using namespace std; int getNumUnique(queueq){ vectorseen; int num_uniq = 0, curr; bool repeat; while(!q.empty()){ repeat = false; curr = q.front(); q.pop(); for(int i=0; iq, int num){ int curr, qsize = q.size(); for(int i=0; i>num_emps; vector>adj; /* Make adjecency matrix */ for(int i=0; i>num_conns; vector adj_list; for(int j=0; j>emp; adj_list.push_back(emp); } adj.push_back(adj_list); } int tc, origin; cin>>tc; while(tc--){ cin>>origin; /* bfs vars */ queue q; int max_num_depth, max_num, curr_size; int visited[num_emps] = {0}, emp_depth[num_emps] = {0}; int curr_emp, curr_depth = 0; q.push(origin); curr_size = q.size(); emp_depth[origin] = 0; max_num_depth = 0; max_num = 0; while(!q.empty()){ curr_emp = q.front(); visited[curr_emp] = 1; if(emp_depth[curr_emp] > curr_depth){ /* depth increase */ curr_depth+=1; curr_size = getNumUnique(q); if(curr_size > max_num){ max_num_depth = curr_depth; max_num = curr_size; } } q.pop(); for(int i=0; i