Submission #767889

#TimeUsernameProblemLanguageResultExecution timeMemory
767889OrazBTropical Garden (IOI11_garden)C++14
49 / 100
5068 ms13068 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #include <functional> #include "garden.h" #include "gardenlib.h" using namespace __gnu_pbds; using namespace std; typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; //Dijkstra->set //set.find_by_order(x) x-position value //set.order_of_key(x) number of strictly less elements don't need *set.?? #define N 500005 #define wr cout << "Continue debugging\n"; #define all(x) (x).begin(), (x).end() #define ll long long int #define pii pair <int, int> #define pb push_back #define ff first #define ss second vector<int> E[N]; void dfs(int nd, int pr, int &c, int p, int k, int&ans){ if (c > k) return; if (nd == p and c == k){ans++; return;} c++; if (E[nd][0] != pr or E[nd].size() == 1) dfs(E[nd][0], nd, c, p, k, ans); else dfs(E[nd][1], nd, c, p, k, ans); } void count_routes(int n, int m, int p, int R[][2], int q, int G[]){ p++; for (int i = 0; i < m; i++){ E[R[i][0]+1].pb(R[i][1]+1); E[R[i][1]+1].pb(R[i][0]+1); } int ans = 0; for (int i = 1; i <= n; i++){ int c = 0; dfs(i, -1, c, p, G[0], ans); } answer(ans); // return ans; } // int main () // { // ios::sync_with_stdio(false); // cin.tie(0); // int n, m, p, q; // cin >> n >> m >> p >> q; // vector<vector<int>> r(m, vector<int>(2)); // vector<int> k(q); // for (int i = 0; i < m; i++) cin >> r[i][0] >> r[i][1]; // for (int i = 0; i < q; i++) cin >> k[i]; // cout << count_routes(n,m,p,r,q,k); // }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...