Submission #953739

#TimeUsernameProblemLanguageResultExecution timeMemory
953739Trisanu_DasConnecting Supertrees (IOI20_supertrees)C++17
0 / 100
1025 ms14160 KiB
#include <bits/stdc++.h>
using namespace std;
#include "supertrees.h"
 
int n, par[1005];
 
int find(int u){
  return (par[u] == u ? u : find(par[u]));
}
 
void union_(int u, int v){
  par[find(u)] = find(v);
}
 
int construct(vector<vector<int> > p){
  n = p.size();
  for(int i = 0; i < n; i++) par[i] = i;
  vector<vector<int> > b(n, vector<int>(n));
  for(int i = 0; i < n; i++){
    for(int j = 0; j < n; j++){
      if(p[i][j] && find(i) != find(j)){
        union_(i, j);
        b[i][j] = b[j][i] = 1;
      }else if(!p[i][j] && find(i) == find(j)) return 0;
    }
  }
  build(b);
  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...