Submission #441902

#TimeUsernameProblemLanguageResultExecution timeMemory
441902PiejanVDCConnecting Supertrees (IOI20_supertrees)C++17
11 / 100
263 ms24000 KiB
#include "supertrees.h"
#include <bits/stdc++.h>
using namespace std;
void build(std::vector<std::vector<int>> _b);
vector<int>parent;

int uf(int p) {
    if(parent[p] == p) return p;
    return parent[p] = uf(parent[p]);
}

bool same(int u, int v) {
    if(uf(u) == uf(v)) {
        return true;
    }
    return false;
}

int construct(vector<vector<int>> p) {
    int n = p.size();
    parent.resize(n);
    for(int i = 0 ; i < n ; i++) {
        parent[i]=i;
    }
    vector<vector<int>>v(n,vector<int>(n,0));
    for(int i = 0 ; i < n-1 ; i++) {
        for(int j = i+1 ; j < n ; j++) {
            if(p[i][j]) {
                if(!same(i,j)) {
                    v[i][j]=1,v[j][i]=1;
                    parent[j]=i;
                }
            }
        }
    }
    for(int i = 0 ; i < n ; i++) {
        for(int j = i+1 ; j < n ; j++) {
            if(!p[i][j]) {
                if(same(i,j)) {
                    return 0;
                }
            }
        }
    }
    build(v);
    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...