Submission #431950

#TimeUsernameProblemLanguageResultExecution timeMemory
431950A_D슈퍼트리 잇기 (IOI20_supertrees)C++14
11 / 100
284 ms30656 KiB
#include "supertrees.h" #include <bits/stdc++.h> using namespace std; const int NN=1e3+100; bool vis[NN]; vector<int> g[NN][3]; vector<vector<int>> ans; int s,e; void dfs2(int u) { vis[u]=1; for(auto x:g[u][1]){ if(vis[x])continue; ans[u][x]=1; ans[x][u]=1; dfs2(x); } } void dfs(int u) { e=u; vis[u]=1; for(auto x:g[u][2]){ if(vis[x])continue; ans[u][x]=1; ans[x][u]=1; dfs(x); } } int construct(vector<vector<int>> p){ int n=p.size(); ans.resize(n); for(int i=0;i<n;i++){ ans[i].resize(n); for(int j=0;j<n;j++){ if(p[i][j]==3){ return 0; } if(i==j){ if(p[i][j]!=1){ return 0; } continue; } g[i][p[i][j]].push_back(j); g[j][p[i][j]].push_back(i); } } for(int i=0;i<n;i++){ if(vis[i]==0)dfs2(i); } memset(vis,0,sizeof(vis)); for(int i=0;i<n;i++){ s=i; e=i; ans[s][e]=1; if(vis[i]==0)dfs(i); ans[i][i]=0; } build(ans); 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...