제출 #834742

#제출 시각아이디문제언어결과실행 시간메모리
834742Mohmad_Zaid열쇠 (IOI21_keys)C++17
9 / 100
3013 ms22988 KiB
#include <bits/stdc++.h> #define pb push_back using namespace std; vector<bool>vis; vector<vector<int>>g; void dfs(int par,int node,vector<int>&r,vector<int>&u,vector<int>&v,vector<int>&c){ vis[node]=1; for(auto it:g[node]){ if(it==par || vis[it])continue; dfs(node,it,r,u,v,c); } } vector<int> find_reachable(vector<int> r, vector<int> u, vector<int> v, vector<int> c) { int n=r.size(); int m=u.size(); g.resize(n,vector<int>()); for(int i=0;i<m;i++){ g[u[i]].pb(v[i]); g[v[i]].pb(u[i]); } vector<int> ans(n, 1); vector<int>reaches(n,0); int mn=INT_MAX; for(int i=0;i<n;i++){ vis.assign(n,0); if(r[i]!=0){reaches[i]=1;mn=1;continue;} dfs(-1,i,r,u,v,c); int sm=0; for(int j=0;j<n;j++){sm+=vis[j];} reaches[i]=sm; } for(int i=0;i<n;i++){ mn=min(mn,reaches[i]); } for(int i=0;i<n;i++){ if(reaches[i]==mn){ ans[i]=1; }else{ ans[i]=0; } } 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...