Submission #302239

#TimeUsernameProblemLanguageResultExecution timeMemory
302239jhnah917Connecting Supertrees (IOI20_supertrees)C++14
0 / 100
1 ms256 KiB
#include "supertrees.h" #include <vector> #include <bits/stdc++.h> // from ryute int pa[1010]; int fi(int x) { return pa[x] = x == pa[x] ? x : fi(pa[x]); } void un(int a, int b) { a = fi(a); b = fi(b); if (a == b) return; pa[a] = b; } int construct(std::vector<std::vector<int>> p) { int n = p.size(); std::vector<std::vector<int>> ans; for (int i = 0; i < n; i++) { std::vector<int> row; row.resize(n); ans.push_back(row); } for (int i = 0; i < n; i++) pa[i] = i; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) if (p[i][j]) un(i, j); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (p[i][j] != (fi(i) == fi(j))) return 0; } } for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (p[i][j]) { ans[i][j] = 1; ans[j][i] = 1; } } } 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...