Submission #835497

#TimeUsernameProblemLanguageResultExecution timeMemory
835497IS_RushdiKeys (IOI21_keys)C++17
37 / 100
3031 ms23832 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<pair<int,int>>>a(n);
    for(int i = 0; i < m; i++){
        a[v[i]].push_back({u[i],c[i]});
        a[u[i]].push_back({v[i],c[i]});
    }
    int mn = 2e9;
    vector<int>cnt(n);
    for(int i = 0; i < n; i++){
        vector<bool>vis(n);
        vector<bool>vis2(n);
        vector<vector<int>>arr(n,vector<int>());
        queue<int>q;
        q.push(i);
        while(!q.empty()){
            int node = q.front();
            q.pop();
            if(vis[node]) continue;
            vis[node]=1;
            if(!vis2[r[node]]){
                vis2[r[node]]=1;
                for(int to : arr[r[node]]){
                    if(vis[to]) continue;
                    q.push(to);
                }
            }
            for(pair<int,int> to : a[node]){
                if(vis[to.first]) continue;
                if(!vis2[to.second]){
                    arr[to.second].push_back(to.first);
                }else{
                    q.push(to.first);
                }
            }
        }
        for(int j = 0; j < n; j++){
            if(vis[j]) cnt[i]++;
        }
        mn = min(mn,cnt[i]);
    }
    for(int i = 0; i < n; i++){
        if(cnt[i] == mn) ans[i] = 1;
        else ans[i] = 0;
    }
    return ans;
}
// int main(){
//     int n; cin >> n;
//     vector<int>a(n);
//     for(int i = 0; i < n; i++) cin >> a[i];
//     int m; cin >> m;
//     vector<int>b(m),c(m),d(m);
//     for(int i = 0; i < m; i++) cin >> b[i];
//     for(int i = 0; i < m; i++) cin >> c[i];
//     for(int i = 0; i < m; i++) cin >> d[i];
//     vector<int>ans =  find_reachable(a,b,c,d);
//     for(int i = 0; i < n; i++) cout << ans[i] << ' ';
    
// }
#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...