# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1086357 | 2024-09-10T10:13:26 Z | akacool445k | Tropical Garden (IOI11_garden) | C++14 | 0 ms | 0 KB |
#include <bits/stdc++.h> #include "garden.h" #include "gardenlib.h" using namespace std; #define ff first #define ss second #define pb push_back #define int long long #define pint pair<int, int> #define vint vector<pair<int, int>> const int mod = 1e9 + 7; const int shrek = 2e5 + 5; const int say = INT_MAX; const int gex = INT_MIN; const int sebian = LLONG_MAX; const int lex = LLONG_MIN; vector<vector<int>> adj(shrek); void count_routes(int n, int m, int p, int r[][2], int q, int g[]) { int a, b; for(int i = 0; i < n; i++) { a = r[i][0]; b = r[i][1]; if(adj[a].size() < 2) adj[a].pb(b); if(adj[b].size() < 2) adj[b].pb(a); } int ans = 0; for(int i = 0; i < n; i++) { int cur = 0; int par = -1; for(int cnt = 0; cnt < g[0]; cnt++) { if(adj[cur].size() == 1) { par = cur; cur = adj[cur][0]; continue; } if(par != adj[cur][0]) { par = cur; cur = adj[cur][0]; continue; } else { par = cur; cur = adj[cur][1]; continue; } } if(cur == p) ans++; } // if(ans != 1) exit(1); for(int i = 0; i < q; i++) answer(ans); }