제출 #777031

#제출 시각아이디문제언어결과실행 시간메모리
777031YassirSalama슈퍼트리 잇기 (IOI20_supertrees)C++14
11 / 100
145 ms22024 KiB
#include "supertrees.h"
#include <vector>
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1100;
int par[MAXN];
void make_set(){
	for(int i=0;i<MAXN;i++) par[i]=i;
}
int find(int node){
	if(node==par[node]) return node;
	return par[node]=find(par[node]);
}
void merge(int a,int b){
	par[find(a)]=b;
}
int construct(vector<vector<int>> p) {
	int n = p.size();
	vector<vector<int>> answer(n,vector<int>(n,0));
	make_set();
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(find(i)==find(j)) answer[i][j]=0;
			else{
				if(p[i][j]==0) continue;
				merge(i,j);
				answer[i][j]=1;
			}
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(answer[i][j]) answer[j][i]=answer[i][j];
		}
	}
	build(answer);
	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...