Submission #1233515

#TimeUsernameProblemLanguageResultExecution timeMemory
1233515Timosh열쇠 (IOI21_keys)C++20
0 / 100
0 ms328 KiB
#include <bits/stdc++.h> using namespace std; vector<int> find_reachable(vector<int> r, vector<int> u, vector<int> v, vector<int> c) { int n = r.size(); int m = c.size(); int mn = n + 1; vector<int> ans(n); vector<vector<pair<int, int>>> g(n); for (int i = 0; i < m; i++) g[u[i]].push_back({v[i], c[i]}), g[v[i]].push_back({u[i], c[i]}); for (int i = 0; i < n; i++) { vector<int> vis(n), colvis(n); vector<vector<int>> col(n); for (auto &x : g[i]) col[x.second].push_back(x.first); queue<int> q; for (auto &x : g[i]) if (x.second == r[i]) q.push(x.first); while (!q.empty()) { int x = q.front(); q.pop(); if (vis[x]) continue; vis[x] = 1; for (auto &y : g[x]) col[y.second].push_back(y.first); if (colvis[r[x]]) continue; colvis[r[x]] = 1; for (auto &y : col[r[x]]) q.push(y); } for (auto &j : vis) ans[i] += j; } mn=*min_element(ans.begin(), ans.end()); for (int i = 0; i < n; i++) ans[i] = mn == ans[i]; return ans; }
#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...