#include "garden.h"
#include "gardenlib.h"
#include <bits/stdc++.h>
using ll = long long;
using ld = long double;
#define pr pair<int, int>
#define pb push_back
using namespace std;
const ll INF = 1e18+1, MOD = 1e9+7;
vector<vector<int>> edge;
int dfs(int node, int prev, int cnt, int k, int p) {
if (k == cnt) {
if (node == p) return 1;
else return 0;
}
if (edge[node][0] == prev && edge[node].size() > 1) {
return dfs(edge[node][1], node, cnt+1, k, p);
}
else {
return dfs(edge[node][0], node, cnt+1, k, p);
}
}
void count_routes(int N, int M, int P, int R[][2], int Q, int G[]) {
vector<int> ans(Q, 0);
edge.resize(N);
for (int i = 0; i < M; i++) {
edge[R[i][0]].pb(R[i][1]);
edge[R[i][1]].pb(R[i][0]);
}
for (int i = 0; i < N; i++) {
if (P == i) continue;
for (int j = 0; j < Q; j++) {
ans[j] += dfs(i, -1, 0, G[j], P);
}
}
for(int i=0; i<Q; i++)
cout << ans[i];
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |