Submission #1041425

#TimeUsernameProblemLanguageResultExecution timeMemory
1041425vjudge1Izlet (COI19_izlet)C++17
18 / 100
687 ms53584 KiB
#include <iostream> #include <vector> using namespace std; const int N = 3e3 + 10; int a[N][N]; int par[N]; vector<int> vec[N]; int root(int v){ if (par[v] == 0) return v; return par[v] = root(par[v]); } void solve1(int n){ for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) if (i != j and a[i][j] == 1 and root(i) != root(j)) par[root(i)] = root(j); for (int i=1;i<=n;i++) cout<<1 + (root(i) != root(1))<<' '; cout<<'\n'; for (int i=2;i<=n;i++) vec[root(i)].push_back(i); for (int i=1;i<=n;i++){ int prv = 1; for (int j : vec[i]) cout<<prv<<" "<<j<<'\n', prv = j; } } int main(){ int t, n; cin>>t>>n; for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) cin>>a[i][j]; if (t == 1) solve1(n); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...