Submission #777044

#TimeUsernameProblemLanguageResultExecution timeMemory
777044YassirSalamaConnecting Supertrees (IOI20_supertrees)C++14
21 / 100
177 ms22028 KiB
#include "supertrees.h" #include <vector> #include<bits/stdc++.h> using namespace std; const int MAXN=1100; int par[MAXN]; void make_set(){ for(int i=0;i<MAXN;i++) par[i]=i; } int find(int node){ if(node==par[node]) return node; return par[node]=find(par[node]); } void merge(int a,int b){ par[find(a)]=b; } int construct(vector<vector<int>> p) { int n = p.size(); vector<vector<int>> answer(n,vector<int>(n,0)); make_set(); for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(answer[i][j]) continue; if(find(i)==find(j)) { if(p[i][j]==0) return 0; answer[i][j]=answer[j][i]=0; } else{ if(p[i][j]==0) continue; merge(i,j); answer[i][j]=answer[j][i]=1; } } } build(answer); return 1; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...