#include "supertrees.h"
#include <bits/stdc++.h>
using namespace std;
const int MAXN=1010;
vector<vector<int>>answer, v;
vector<int>marc(MAXN);
int n, l;
void dfs(int x, int p){
answer[x][p]=1;
answer[p][x]=1;
marc[x]=1;
l=x;
for(int k=0;k<n;k++){
if(v[x][k]==1 and marc[k]==0){
answer[x][k]=1;
answer[k][x]=1;
marc[k]=1;
}
}
for(int k=0;k<n;k++){
if(v[x][k]==2 and marc[k]==0){
dfs(k, x);
}
}
}
/*void build(vector<vector<int>>p){
for(int k=0;k<n;k++){
for(int i=0;i<n;i++){
cout<<p[k][i]<<' ';
}
cout<<endl;
}
}*/
int construct(vector<vector<int>>p){
n=p.size();
v=p;
for(int k=0;k<n;k++){
vector<int>row;
row.resize(n);
answer.push_back(row);
}
for(int k=0;k<n;k++){
for(int i=0;i<n;i++){
answer[k][i]=0;
}
}
for(int k=0;k<n;k++){
if(marc[k]==0){
dfs(k, k);
answer[k][l]=1;
answer[l][k]=1;
}
}
for(int k=0;k<n;k++){
answer[k][k]=0;
}
build(answer);
return 1;
}
/*int main(){
cin>>n;
vector<vector<int>>in(n, vector<int>(n));
for(int k=0;k<n;k++){
for(int i=0;i<n;i++){
cin>>in[k][i];
}
}
cout<<construct(in);
}*/
| # | 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... |