# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
347461 | milleniumEeee | 열대 식물원 (Tropical Garden) (IOI11_garden) | C++17 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "garden.h"
//#include "grader.cpp"
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int MAXN = 150005;
int k;
int n, m, p;
vector <int> g[MAXN];
int dfs(int v, int par = -1, int len = 0) {
if (len == k) {
if (v == p) {
return 1;
} else {
return 0;
}
}
int best = 1e9;
for (int to : g[v]) {
if (to != par) {
best = min(best, to);
}
}
if (best == 1e9) {
return dfs(par, v, len + 1);
} else {
return dfs(best, v, len + 1);
}
}
void count_routes(int N, int M, int P, int R[][2], int Q, int G[]) {
n = N;
m = M;
p = P;
for (int i = 0; i < M; i++) {
g[R[i][0]].push_back(R[i][1]);
g[R[i][1]].push_back(R[i][0]);
}
for (int i = 0; i < Q; i++) {
k = G[i];
int ans = 0;
for (int v = 0; v < N; v++) {
ans += dfs(v);
}
answer(ans);
}
}