제출 #779126

#제출 시각아이디문제언어결과실행 시간메모리
779126Josia슈퍼트리 잇기 (IOI20_supertrees)C++17
11 / 100
154 ms23924 KiB
#include "supertrees.h"
#include <vector>
#include <bits/stdc++.h>


using namespace std;


int construct(std::vector<std::vector<int>> p) {
	int n = p.size();
	if (n == 1) {
		if (p[0][0] == 1) {
			build({{0}});
			return 1;
		}
		return 0;
	}
	vector<vector<int>> answer(n, vector<int>(n));

	vector<int> vals;

	for (int i = 0; i<n; i++) {
		bool isZero = p[i][(i+1)%n]==0;
		for (int j = 0; j<n; j++) {
			if (j == i) continue;
			if ((p[i][j] == 0) != isZero) return 0;
		}
		if (!isZero) vals.push_back(i);
	}

	for (int i = 0; i<(int)(vals.size())-1; i++) {
		answer[i][i+1] = 1;
		answer[i+1][i] = 1;
	}

	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...