제출 #1068759

#제출 시각아이디문제언어결과실행 시간메모리
1068759PagodePaiva슈퍼트리 잇기 (IOI20_supertrees)C++17
21 / 100
128 ms28084 KiB
#include "supertrees.h"
#include<bits/stdc++.h>

using namespace std;

const int N = 1010;
int res[N][N];
int pai[N];

int construct(std::vector<std::vector<int>> p) {
	/* int n = p.size();
	std::vector<std::vector<int>> answer;
	for (int i = 0; i < n; i++) {
		std::vector<int> row;
		row.resize(n);
		answer.push_back(row);
	}
	build(answer);
	*/
	memset(pai, -1, sizeof pai);
	int n = p.size();
	for(int i = 0;i < n;i++){
		if(pai[i] == -1) pai[i] = i;
		else continue;
		for(int j = 0;j < n;j++){
			if(i == j) continue;
			if(pai[j] != -1) continue;
			if(p[i][j] == 1) pai[j] = i;
		}
	}
	for(int i = 0;i < n;i++){
		res[i][pai[i]] = res[pai[i]][i] = 1;
		res[i][i] = 0;
		for(int j = 0;j < n;j++){
			if((pai[i] == pai[j]) != (p[i][j])){
				return 0;
			}
		}
	}
	vector <vector <int>> answer;
	for(int i = 0;i < n;i++){
		vector <int> aux;
		for(int j = 0;j < n;j++){
			aux.push_back(res[i][j]);
		}
		answer.push_back(aux);
	}
	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...