제출 #1233520

#제출 시각아이디문제언어결과실행 시간메모리
1233520TimoshKeys (IOI21_keys)C++20
37 / 100
3094 ms24780 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); queue<int> q; q.push(i); while (!q.empty()) { int x = q.front(); q.pop(); if (vis[x]) continue; vis[x] = 1; for (auto &y : g[x]) { if (colvis[y.second] || r[x] == y.second) q.push(y.first); else col[y.second].push_back(y.first); } if (colvis[r[x]]) continue; colvis[r[x]] = 1; for (auto &y : col[r[x]]) if (!vis[y]) 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...