Submission #435024

#TimeUsernameProblemLanguageResultExecution timeMemory
435024DanerZeinKeys (IOI21_keys)C++17
9 / 100
2566 ms20060 KiB
#include <vector> #include <bits/stdc++.h> using namespace std; typedef pair<int,int> ii; typedef vector<ii> vi; const int MAX=1e9; const int MAX_N=1e5; vector<vi> G; bool ll[MAX_N],vis[MAX_N]; std::vector<int> find_reachable(std::vector<int> r, std::vector<int> u, std::vector<int> v, std::vector<int> c) { int n=r.size(); int m=u.size(); G.resize(n+1); for(int i=0;i<m;i++){ G[u[i]].push_back(ii(v[i],c[i])); G[v[i]].push_back(ii(u[i],c[i])); } vector<int> ans(n,0); int mi=MAX; for(int i=0;i<n;i++){ queue<int> q; q.push(i); memset(ll,0,sizeof ll); memset(vis,0,sizeof vis); vis[i]=1; ll[r[i]]=1; while(!q.empty()){ int x=q.front(); q.pop(); for(auto &v:G[x]){ if(ll[v.second] && !vis[v.first]){ q.push(v.first); ll[r[v.first]]=1; vis[v.first]=1; } } } int c=0; for(int i=0;i<n;i++){ c+=vis[i]; } if(mi>c){ for(int i=0;i<n;i++) ans[i]=0; mi=c; } if(mi==c){ ans[i]=1; } } 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...