File tree Expand file tree Collapse file tree 3 files changed +46
-0
lines changed Expand file tree Collapse file tree 3 files changed +46
-0
lines changed Original file line number Diff line number Diff line change
1
+ 1
2
+ 1 3
Original file line number Diff line number Diff line change
1
+ 4 2
2
+ 1 2
3
+ 3 4
Original file line number Diff line number Diff line change
1
+ // https://cses.fi/problemset/task/1666
2
+ #include < bits/stdc++.h>
3
+
4
+ using namespace std ;
5
+
6
+ using vi = vector<int >;
7
+ using vvi = vector<vi>;
8
+
9
+ vi s;
10
+ vvi g;
11
+ int n;
12
+
13
+ void dfs (int u) {
14
+ s[u] = 1 ;
15
+ for (int v : g[u])
16
+ if (!s[v])
17
+ dfs (v);
18
+ }
19
+
20
+ int main () {
21
+ int m, u, v;
22
+ cin >> n >> m;
23
+ g = vvi (n);
24
+ for (int i = 0 ; i < m; i++) {
25
+ cin >> u >> v;
26
+ u--; v--;
27
+ g[u].push_back (v);
28
+ g[v].push_back (u);
29
+ }
30
+ s = vi (n);
31
+ vi b;
32
+ dfs (0 );
33
+ for (int i = 1 ; i < n; i++)
34
+ if (!s[i]) {
35
+ b.push_back (i);
36
+ dfs (i);
37
+ }
38
+ cout << b.size () << endl;
39
+ for (int x : b)
40
+ cout << 1 << " " << x + 1 << endl;
41
+ }
You can’t perform that action at this time.
0 commit comments