Submission #1186376

#TimeUsernameProblemLanguageResultExecution timeMemory
1186376WarinchaiConnecting Supertrees (IOI20_supertrees)C++20
0 / 100
0 ms320 KiB
#include "supertrees.h" #include <vector> #include<bits/stdc++.h> using namespace std; int N; vector<vector<int>>adj; int have1[1005]; int have2[1005]; int have3[1005]; int vis1[1005]; int vis2[1005]; int vis3[1005]; int cant=0; vector<vector<int>> answer; void build1(int u){ vector<int>node; vis1[u]=1; for(int i=0;i<N;i++)if(i!=u&&adj[u][i]==1)node.push_back(i),vis1[i]=1; for(int i=0;i<node.size()-1;i++)answer[node[i]][node[i+1]]=1,answer[node[i+1]][node[i]]=1; } int construct(std::vector<std::vector<int>> p) { N = p.size(); for (int i = 0; i < N; i++) { vector<int> row; row.resize(N); answer.push_back(row); } adj=p; for(int i=0;i<N;i++){ for(auto x:p[i]){ if(x==1)have1[i]=1; else if(x==2)have2[i]=1; else if(x==3)have3[i]=1; } } for(int i=0;i<N;i++)for(int j=0;j<N;j++)if(adj[i][j]!=adj[j][i])cant=1; for(int i=0;i<N;i++){ if(have1[i]&&!vis1[i])build1(i); } if(cant)return 0; 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...