# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
823068 | 2023-08-12T07:34:22 Z | Sohsoh84 | Comparing Plants (IOI20_plants) | C++17 | 0 ms | 0 KB |
#include "supertrees.h" #include <bits/stdc++.h> using namespace std; const int MAXN = 1e5 + 10; vector<int> C[MAXN]; int construct(vector<vector<int>> p) { int n = p.size(); vector<vector<int>> answer; for (int i = 0; i < n; i++) { vector<int> row; row.resize(n, 0); answer.push_back(row); } for (int i = 1; i < n; i++) { int lst = i; for (int j = 0; j < i; j++) if (p[i][j]) if (lst == i) lst = j; f[i] = i; f[i] = f[lst]; if (lst < i) answer[i][lst] = answer[lst][i] = 1; } for (int i = 0; i < n; i++) for (int j = i + 1; j < n; j++) if (p[i][j] ^ (f[i] == f[j])) return 0; build(answer); return 1; }