Submission #412435

#TimeUsernameProblemLanguageResultExecution timeMemory
412435SuhaibSawalha1Comparing Plants (IOI20_plants)C++17
0 / 100
1 ms204 KiB
#include "plants.h" #include <bits/stdc++.h> using namespace std; vector<int> p, bt; void init(int k, vector<int> r) { int n = r.size(); vector<vector<int>> adj(n); vector<int> d(n); for (int i = 0; i < n; ++i) { if (r[i]) { adj[i].push_back((i + 1) % n); ++d[(i + 1) % n]; } else { adj[(i + 1) % n].push_back(i); ++d[i]; } } queue<int> q; for (int i = 0; i < n; ++i) { if (!d[i]) { q.push(i); } } int cnt = 0, tm = 0; p.resize(n); bt.resize(n); while (q.size()) { int s = q.size(); while (s--) { int u = q.front(); bt[u] = tm; p[u] = cnt++; q.pop(); for (int v : adj[u]) { if (!--d[v]) { q.push(v); } } } ++tm; } } int compare_plants(int x, int y) { return bt[x] == bt[y] ? 0 : p[x] > p[y] ? 1 : -1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...