Submission #963786

# Submission time Handle Problem Language Result Execution time Memory
963786 2024-04-15T16:52:49 Z SuPythony Connecting Supertrees (IOI20_supertrees) C++17
Compilation error
0 ms 0 KB
#include "supertrees.h"
#include <bits/stdc++.h>
using namespace std;

class DSU {
    vector<int> par;
    vector<int> siz;

public:
    DSU(int n) {
        par.resize(n);
        iota(par.begin(),par.end(),0);
        siz.assign(n,1);
    }
    
    int find_set(int u) {
        if (par[u]==u) return u;
        return par[u]=find_set(par[u]);
    }
    
    bool is_same(int u, int v) {
        return find_set(u)==find_set(v);
    }
    
    void unite_set(int u, int v) {
        u=find_set(u);
        v=find_set(v);
        if (u==v) return;
        if (siz[u]<siz[v]) swap(u,v);
        par[v]=u;
        siz[u]+=siz[v];
    }
}

int construct(vector<vector<int>> p) {
	int n = p.size();
	vector<vector<int>> ans(n,vector<int>(n,0));
	DSU dsu=DSU(n);
	for (int i=0; i<n; i++) {
	    for (int j=0; j<n; j++) {
	        if (i==j) continue;
	        if (p[i][j]==1) {
	            dsu.unite_set(i,j);
	            ans[i][j]=1;
	        }
	    }
	}
	for (int i=0; i<n; i++) {
	    for (int j=0; j<n; j++) {
	        if (p[i][j]==0&&dsu.is_same(i,j)) {
	            return 0;
	        }
	    }
	}
	build(ans);
	return 1;
}

Compilation message

supertrees.cpp:33:2: error: expected ';' after class definition
   33 | }
      |  ^
      |  ;