Submission #834729

#TimeUsernameProblemLanguageResultExecution timeMemory
834729IS_RushdiKeys (IOI21_keys)C++17
0 / 100
3054 ms212 KiB
#include <bits/stdc++.h>
using namespace std;



vector<int> find_reachable(vector<int> r, vector<int> u, vector<int> v, vector<int> c) {
	vector<int> ans(r.size(), 1);
    int n = r.size();
    int m = u.size();
    vector<vector<int>>a(n);
    vector<int>tmp(n);
    for(int i = 0; i < m; i++){
        a[v[i]].push_back(u[i]);
        a[u[i]].push_back(v[i]);
    }
    int mn = 1e9;
    for(int i = 0; i < n; i++){
        vector<bool>vis(n,0);
        queue<pair<int,bool>>q;
        q.push({i,0});
        int c = 0;
        while(!q.empty()){
            int node = q.front().first;
            bool can = q.front().second;
            if(vis[node]) continue;
            vis[node]=1;
            c++;
            if(r[node] == 0) can=1;
            if(can){
                for(int to : a[node]){
                    q.push({to,can});
                }
            }
        }
        tmp[i] = c;
        mn = min(mn,c);
    }
    for(int i = 0; i < n; i++){
        if(tmp[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...