Submission #435438

#TimeUsernameProblemLanguageResultExecution timeMemory
435438Maqsut_03Keys (IOI21_keys)C++17
20 / 100
112 ms17184 KiB
#include<bits/stdc++.h> #define ll long long #define ff first #define ss second using namespace std; const int N = 2222; vector<pair<int, int> > g[N]; int n, m; std::vector<int> find_reachable(std::vector<int> r, std::vector<int> u, std::vector<int> v, std::vector<int> c) { std::vector<int> ans(r.size(), 1); n = r.size(); m = u.size(); for (int i=0; i<m; i++) { g[v[i]].push_back({u[i], c[i]}); g[u[i]].push_back({v[i], c[i]}); } queue<int> s; bool used[N], ka[N]; int q, k[N]; for (int i=0; i<n; i++) { memset(used, 0, sizeof(used)); memset(ka, 0, sizeof(ka)); s.push(i); while (s.size() > 0) { int i0 = s.front(); ka[r[i0]] = 1; s.pop(); for (auto l:g[i0]) { if (ka[l.ss] == 1 && used[l.ff] == 0){ s.push(l.ff); used[l.ff] = true; } } } q = 0; for (int i0=0; i0<n; i0++) if (used[i0]) q++; k[i] = q; } int mn = N; for (int i=0; i<n; i++) mn = min(k[i], mn); for (int i=0; i<n; i++) if (k[i] != mn) ans[i] = 0; return ans; } /** 4 5 0 1 1 2 0 1 0 0 2 0 1 2 1 1 3 0 3 1 2 */
#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...