3
int maximalPathQuality(vector<int> &values, vector<vector<int>> &edges, int maxTime) {6
vector<vector<pair<int, int>>> graph(n);7
for (int i = 0; i < edges.size(); i++) {8
graph[edges[i][0]].push_back({edges[i][1], edges[i][2]});9
graph[edges[i][1]].push_back({edges[i][0], edges[i][2]});12
vector<int> visited(n, 0);13
dfs(graph, values, visited, res, 0, 0, 0, maxTime);17
void dfs(vector<vector<pair<int, int>>> &graph, vector<int> &values, vector<int> &visited,18
int &res, int node, int score, int time, int &maxTime) {19
if (time > maxTime) return;21
if (visited[node] == 0) score += values[node];36
if (node == 0) res = max(res, score);38
for (auto it : graph[node]) {40
int newTime = time + it.second;41
dfs(graph, values, visited, res, neigh, score, newTime, maxTime);