Submission #1262390

#TimeUsernameProblemLanguageResultExecution timeMemory
1262390kawhietTropical Garden (IOI11_garden)C++20
49 / 100
5099 ms165832 KiB
#include "garden.h" #include "gardenlib.h" #include <bits/stdc++.h> using namespace std; int k, t, res = 0; vector<vector<pair<int, int>>> g; void dfs(int u, int p, int d = 0) { if (d == k) { res += (u == t); return; } int i = p; vector<pair<int, int>> a; for (auto [v, w] : g[u]) { a.push_back({w, v}); } sort(a.begin(), a.end()); if (a.size() == 1) { dfs(a[0].second, u, d + 1); } else { if (a[0].second == p) { dfs(a[1].second, u, d + 1); } else { dfs(a[0].second, u, d + 1); } } } void count_routes(int N, int M, int P, int R[][2], int Q, int G[]) { t = P; g.resize(N); for (int i = 0; i < M; i++) { int u = R[i][0], v = R[i][1]; g[u].push_back({v, i}); g[v].push_back({u, i}); } for (int q = 0; q < Q; q++) { res = 0; k = G[q]; for (int i = 0; i < N; i++) { dfs(i, -1); } answer(res); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...