| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 803197 | vjudge1 | 열쇠 (IOI21_keys) | C++17 | 79 ms | 21800 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
struct edge {
int v,c;
};
vector<edge> adj[3010];
vector<int> find_reachable(vector<int> r, vector<int> u, vector<int> v, vector<int> c) {
int n = r.size(), m = u.size();
vector<int> res(n);
for(int i = 0; i < m; i++)
adj[u[i]].push_back({v[i], c[i]}),
adj[v[i]].push_back({u[i], c[i]});
for(int i = 0; i < n; i++) {
bitset<2010> vis, ac;
vector<int> unlock[2010];
queue<int> q;
q.push(i);
vis[i] = 1;
while(!q.empty()) {
int x = q.front();
q.pop();
if(!ac[r[x]]) {
ac[r[x]] = 1;
for(auto j: unlock[r[x]]) {
if(!vis[j]) {
vis[j]=1;
q.push(j);
}
}
}
for(auto j: adj[x]) {
if(!vis[j.v]) {
if(ac[j.c])
q.push(j.v), vis[j.v]=1;
else
unlock[j.c].push_back(j.v);
}
}
}
res[i] = vis.count();
}
vector<int> ans(n);
int x = *min_element(res.begin(), res.end());
for(int i = 0; i < n; i++)
ans[i] = (res[i]==x);
return ans;
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
