Submission #961639

#TimeUsernameProblemLanguageResultExecution timeMemory
961639Gr1senConnecting Supertrees (IOI20_supertrees)C++17
0 / 100
1 ms348 KiB
#include"supertrees.h" #include<iostream> #include<vector> #include<algorithm> #include<iomanip> using namespace std; #define vi vector<int> #define vvi vector<vi> vi L; vi F; int find(int a) {return (F[a] == -1 ? a : F[a] = find(F[a]));} void uunion(int a, int b) { a = find(a); b = find(b); if (a == b) return; F[a] = b; } int construct(std::vector<std::vector<int>> p) { int n = p.size(); vvi Adj(n, vi(n, 0)); L.clear(); F.clear(); F.resize(n, -1); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (p[i][j]) { Adj[i][j] = 1; Adj[j][i] = 1; uunion(i, j); continue; } //cerr << i << " " << j << " " << find(i) << " " << find(j) << endl; if (find(i) == find(j)) return 0; } if (find(i) == i) L.push_back(i); } build(Adj); 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...