Submission #705056

#TimeUsernameProblemLanguageResultExecution timeMemory
705056NursikIzlet (COI19_izlet)C++14
0 / 100
153 ms10576 KiB
#include <iostream> #include <fstream> #include <iomanip> #include <vector> #include <set> #include <map> #include <cstring> #include <string> #include <cmath> #include <cassert> #include <ctime> #include <algorithm> #include <sstream> #include <list> #include <queue> #include <deque> #include <stack> #include <cstdlib> #include <cstdio> #include <iterator> #include <functional> #include <unordered_set> #include <unordered_map> #include <stdio.h> #include <bitset> #include <cstdint> #include <cassert> #include <functional> #include <complex> #include <random> using namespace std; #define ll long long #define pb push_back #define mp make_pair #define f first #define s second #define ld long double const ll maxn = 1e3 + 10, maxm = 20 + 1; const ll mod = 1e9 + 7, cmod = 998244353, inf = 1e9, blcok = 400, p2 = 31; const ld eps = 1e-9; int s, n, a[maxn][maxn], p[maxn], sz[maxn], color[maxn]; vector<int> comps[maxn]; int get(int v){ if (v == p[v]) return v; return p[v] = get(p[v]); } void unite(int a, int b){ a = get(a), b = get(b); if (a == b) return; if (sz[a] > sz[b]) swap(a, b); p[a] = b; sz[b] += sz[a]; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin >> s; cin >> n; for (int i = 1; i <= n; ++i){ for (int j = 1; j <= n; ++j){ cin >> a[i][j]; } } for (int i = 1; i <= n; ++i){ p[i] = i, sz[i] = 1; } for (int i = 1; i <= n; ++i){ for (int j = 1; j <= n; ++j){ if (a[i][j] == 1){ unite(i, j); } } } int root = get(1); for (int i = 1; i <= n; ++i){ if (get(i) == root){ color[i] = 1; } else{ color[i] = 2; } comps[get(i)].pb(i); cout << color[i] << " "; } cout << '\n'; vector<pair<int, int>> ans; for (int i = 1; i <= n; ++i){ int sz = (int)comps[i].size() - 1; for (int j = 0; j < sz; ++j){ ans.pb(mp(comps[i][j], comps[i][j + 1])); } if ((int)comps[i].size() > 0 && i != root){ ans.pb(mp(comps[i][0], root)); } } for (auto it : ans){ cout << it.f << " " << it.s << '\n'; } } /* */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...