Submission #1104559

#TimeUsernameProblemLanguageResultExecution timeMemory
1104559vjudge1Tropical Garden (IOI11_garden)C++17
0 / 100
2 ms336 KiB
#include "garden.h" #include "gardenlib.h" #include<bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; const int MxN = 1005; int n, m, p, q, g, r[MxN][2]; ll ans; vector<pii> v[MxN]; void dfs (int cur, int dist, int w) { if (dist == g && cur == p) return void(ans++); if (dist >= g) return; bool ok = 0; if (v[cur].size() == 1) { auto [x, y] = v[cur][0]; dfs(y, dist + 1, x); ok = 1; } if (!ok && v[cur].size() >= 1 && v[cur][0].first != w) { auto [x, y] = v[cur][0]; dfs(y, dist + 1, x); ok = 1; } if (!ok && v[cur].size() >= 2 && v[cur][1].first != w) { auto [x, y] = v[cur][1]; dfs(y, dist + 1, x); ok = 1; } } void count_routes(int N, int M, int P, int R[][2], int Q, int G[]){ n = N; m = M; p = P; q = Q; g = G[0]; for (int i = 0; i < m; i++) { r[i][0] = R[i][0]; r[i][1] = R[i][1]; v[r[i][0]].emplace_back(i, r[i][1]); v[r[i][1]].emplace_back(i, r[i][0]); } for (int i = 0; i < n; i++) sort(v[i].begin(), v[i].end()); for (int i = 0; i < n; i++) dfs(i, 0, -1); answer(ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...