제출 #1284568

#제출 시각아이디문제언어결과실행 시간메모리
1284568Rares슈퍼트리 잇기 (IOI20_supertrees)C++20
11 / 100
93 ms26124 KiB
#include <bits/stdc++.h> #include "supertrees.h" using namespace std; /**ifstream fin ("date.in"); ofstream fout ("date.out"); #define cin fin #define cout fout**/ const int MAXN=1010; /**void build (vector <vector <int>> b){ int n=b.size (); for (int i=0;i<n;++i){ for (int j=0;j<n;++j){ cout <<b[i][j]<<' '; } cout <<'\n'; } }**/ int n,maxx; bool v[MAXN]; vector <int> crt; vector <vector <int>> rez,p; void dfs (int node){ v[node]=1; crt.push_back (node); for (int i=0;i<n;++i){ if (i!=node and p[node][i] and v[i]==0){ maxx=max (maxx,p[node][i]); dfs (i); } } } int construct (vector <vector <int>> aux){ p=aux; n=p.size (); for (int i=0;i<n;++i){ if (p[i][i]!=1) return 0; for (int j=0;j<n;++j){ if (p[i][j]!=p[j][i]) return 0; if (p[i][j]==3) return 0; } } rez.resize (n, vector <int> (n,0)); for (int i=0;i<n;++i){ if (v[i]==0){ ///am o componenta conexa noua pe care o rezolv crt.clear (); maxx=0; dfs (i); if (maxx==0) continue;///am un nod izolat if (maxx==1){ ///am un lant for (int j=0;j<crt.size ()-1;++j){ rez[crt[j]][crt[j+1]]=1; rez[crt[j+1]][crt[j]]=1; } } } } build (rez); 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...