Submission #829591

#TimeUsernameProblemLanguageResultExecution timeMemory
829591Abrar_Al_SamitKeys (IOI21_keys)C++17
20 / 100
73 ms20716 KiB
#include <bits/stdc++.h> #include "keys.h" using namespace std; const int nax = 200; vector<pair<int,int>>g[nax]; vector<int> find_reachable(vector<int> r, vector<int> u, vector<int> v, vector<int> c) { int n = r.size(), m = u.size(); for(int i=0; i<m; ++i) { g[u[i]].emplace_back(v[i], c[i]); g[v[i]].emplace_back(u[i], c[i]); } int cnt[n] = {0}; for(int sc=0; sc<n; ++sc) { bool rc[n] = {0}; rc[sc] = 1; bool key[n] = {0}; key[r[sc]] = 1; while(1) { bool none = true; for(int i=0; i<n; ++i) if(rc[i]) { for(auto [to ,type] : g[i]) { if(key[type] && !rc[to]) { rc[to] = 1; key[r[to]] = 1; none = false; } } } if(none) break; } for(int i=0; i<n; ++i) { cnt[sc] += rc[i]; } } int mn = 1e9; for(int i=0; i<n; ++i) { mn = min(mn, cnt[i]); } vector<int>ret(n); for(int i=0; i<n; ++i) if(cnt[i]==mn) { ret[i] = 1; } return ret; }
#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...