제출 #1343750

#제출 시각아이디문제언어결과실행 시간메모리
1343750ElyesChaabouni슈퍼트리 잇기 (IOI20_supertrees)C++20
0 / 100
1 ms344 KiB
#include <bits/stdc++.h>
#include "supertrees.h"
#include <vector>
using namespace std;

const int mxN = 1001;
vector<int> parent(mxN,0);

int find(int node){
	if(node==parent[node])
		return node;
	return parent[node]=find(parent[node]);
}

void unite(int a,int b){
	a=find(a),b=find(b);
	parent[b]=a;
}

int construct(vector<vector<int>> p) {
	int N = p.size();
	for(int i=0;i<N;i++)
		parent[i]=i;
	
	vector<vector<int>> ans(N,vector<int>(N,0));
	for(int i=0;i<N;i++){
		for(int j=0;j<N;j++){
			if(p[i][j]==1){
				if(find(i)!=find(j)){
					ans[i][j]=1;
					unite(i,j);
				}
			}
		}
	}
	for(int i=0;i<N;i++){
		for(int j=0;j<N;j++){
			if(p[i][j]==0&&find(i)==find(j)){
				return 0;
			}
		}
	}
	build(ans);
	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...