Submission #1194347

#TimeUsernameProblemLanguageResultExecution timeMemory
1194347cpdreamerConnecting Supertrees (IOI20_supertrees)C++17
21 / 100
134 ms30152 KiB
#include "supertrees.h" #include <vector> #include <bits/stdc++.h> using namespace std; #define pb push_back #define V vector using namespace std; typedef long long ll; #define all(v) v.begin(), v.end() #define P pair #define F first #define S second V<int>adj[(int)2000]; V<int>comp(2000); V<bool>visited(2000); void dfs(int nd,int s){ if(visited[nd]){ return; } visited[nd]=true; comp[nd]=s; for(auto u:adj[nd]){ dfs(u,s); } } int construct(std::vector<std::vector<int>> p) { int n = p.size(); std::vector<std::vector<int>> answer(n,V<int>(n,0)); for(int i=0;i<n;i++){ comp[i]=i; visited[i]=false; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(p[i][j]==1 && i!=j){ adj[i].pb(j); adj[j].pb(i); } } } for(int i=0;i<n;i++){ dfs(i,i); } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(comp[i]==comp[j] && p[i][j]==0)return 0; } } for(int i=0;i<n;i++) { for (int j = 0; j < n; j++) { if (comp[i] == j && i != j) { answer[i][j] = 1; answer[j][i] = 1; } } } build(answer); 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...