답안 #779132

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
779132 2023-07-11T08:13:25 Z Josia 슈퍼트리 잇기 (IOI20_supertrees) C++17
11 / 100
162 ms 22492 KB
#include "supertrees.h"
#include <vector>
#include <bits/stdc++.h>

using namespace std;




struct uf {
	vector<int> chefs;
	uf (int n) {
		chefs.resize(n);
		for (int i = 0; i<n; i++) chefs[i] = i;
	}

	int find(int x) {
		if (chefs[x] == x) return x;
		return chefs[x] = find(chefs[x]);
	}

	void unite(int a, int b) {
		a = find(a);
		b = find(b);

		chefs[a] = b;
	}
};




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));


	uf u(n);

	for (int i = 0; i<n; i++) {
		for (int j = 0; j<n; j++) {
			if (p[i][j]) u.unite(i, j);
		}
	}

	vector<vector<int>> vals(n);

	for (int i = 0; i<n; i++) {
		for (int j = 0; j<n; j++) {
			if (u.find(j) == i) vals[i].push_back(j);
		}
	}

	for (auto v: vals) {

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

	}

	build(answer);
	return 1;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 7 ms 1236 KB Output is correct
7 Correct 157 ms 22404 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 7 ms 1236 KB Output is correct
7 Correct 157 ms 22404 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 296 KB Output is correct
12 Correct 7 ms 1276 KB Output is correct
13 Correct 162 ms 22492 KB Output is correct
14 Incorrect 1 ms 340 KB Answer gives possible 1 while actual possible 0
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Incorrect 1 ms 212 KB Answer gives possible 1 while actual possible 0
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Incorrect 1 ms 300 KB Too few ways to get from 0 to 1, should be 2 found 1
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 7 ms 1236 KB Output is correct
7 Correct 157 ms 22404 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 296 KB Output is correct
12 Correct 7 ms 1276 KB Output is correct
13 Correct 162 ms 22492 KB Output is correct
14 Incorrect 1 ms 340 KB Answer gives possible 1 while actual possible 0
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 7 ms 1236 KB Output is correct
7 Correct 157 ms 22404 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 296 KB Output is correct
12 Correct 7 ms 1276 KB Output is correct
13 Correct 162 ms 22492 KB Output is correct
14 Incorrect 1 ms 340 KB Answer gives possible 1 while actual possible 0
15 Halted 0 ms 0 KB -