Submission #1312198

#TimeUsernameProblemLanguageResultExecution timeMemory
1312198tsetsenbileg열대 식물원 (Tropical Garden) (IOI11_garden)C++20
0 / 100
1 ms332 KiB
#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++) answer(ans[i]); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...