#include "supertrees.h"
#include <bits/stdc++.h>
using namespace std;
#define all(a) (a.begin(), a.end())
#define sz(a) (int)a.size()
int n;
int construct(std::vector<std::vector<int>> p) {
n=sz(p);
vector<vector<int>> groups;
vector<int> id(n);
for (int i = 0; i < n; i++)
{
int g=-1;
for (int j = 0; j < i; j++)
{
if(p[i][j]>=1) {
if(g>-1&&id[j]!=g) return 0;
g=id[j];
}
}
if(g==-1) { groups.push_back({i}); id[i]=sz(groups)-1; }
else groups[g].push_back(i);
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if(p[i][j]!=(int)(id[i]==id[j])) return 0;
}
}
vector<vector<int>> bridge(n,vector<int>(n));
for (int i = 0; i < sz(groups); i++)
{
for (int j = 1; j < sz(groups[i]); j++)
{
bridge[groups[i][j-1]][groups[i][j]]=bridge[groups[i][j]][groups[i][j-1]]=1;
}
}
build(bridge);
return 1;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |