제출 #456150

#제출 시각아이디문제언어결과실행 시간메모리
456150BT21tata슈퍼트리 잇기 (IOI20_supertrees)C++17
40 / 100
419 ms22212 KiB
#include "supertrees.h" #include<bits/stdc++.h> using namespace std; bool used[1005]; int construct(vector<vector<int>> p) { int n = p.size(), mx=0; bool f=1; vector<vector<int>> ans; ans.resize(n); for (int i = 0; i < n; i++) { ans[i].resize(n); for(int j=0; j<n; j++) mx=max(mx, p[i][j]); } if(mx==2) for(int i=0; i<n; i++) p[i][i]=2; vector<int>v; for(int i=0; i<n; i++) { if(!used[i]) { v.clear(); for(int j=0; j<n; j++) if(p[i][j]) { if(p[i]==p[j]) v.push_back(j); else f=0; } if(mx==2 and v.size()==1) continue; for(int j=0; j<(int)v.size()-1; j++) ans[v[j]][v[j+1]]=ans[v[j+1]][v[j]]=1; if(mx==2 and v.size()==2) f=0; if(mx==2) ans[v[0]][v[v.size()-1]]=ans[v[v.size()-1]][v[0]]=1; } } if(!f) return 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...