Submission #1078682

#TimeUsernameProblemLanguageResultExecution timeMemory
1078682Muhammad_AneeqConnecting Supertrees (IOI20_supertrees)C++17
0 / 100
1 ms348 KiB
#include <vector> using namespace std; void build(vector<vector<int>> b); int construct(vector<vector<int>> p) { int n=p.size(); bool subt1=1,subt2=1; for (int i=0;i<n;i++) { for (int j=i+1;j<n;j++) { if (p[i][j]!=1) subt1=0; if (p[i][j]>1) subt2=0; } } if (subt1) { vector<vector<int>>b; for (int i=0;i<n;i++) { b.push_back({}); for(int j=0;j<n;j++) b.back().push_back((i!=j)); } build(b); return 1; } if (subt2) { bool vis[n]={}; int head[n]={}; vector<vector<int>>b(n,vector<int>(n)); for (int i=0;i<n;i++) { if (!vis[i]) { vis[i]=1; for (int j=0;j<n;j++) { if (vis[j]) continue; if (p[i][j]) { vis[j]=1; b[i][j]=1; head[j]=i; } } } } for (int i=0;i<n;i++) { for (int j=0;j<n;j++) { if (p[i][j]&&head[i]!=head[j]) return 0; } } build(b); return 1; } return 0; }
#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...