Submission #953744

#TimeUsernameProblemLanguageResultExecution timeMemory
953744Trisanu_DasConnecting Supertrees (IOI20_supertrees)C++17
21 / 100
169 ms24156 KiB
#include <bits/stdc++.h>
using namespace std;
#include "supertrees.h"
 
int n, par[1005];
 
int find(int u){
  if(par[u] == u) return u;
  par[u] = find(par[u]);
  return 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...