Skip to content

Commit aebab38

Browse files
committed
[cses] Add C++ solution for 1666 - Building Roads
1 parent ebf7d5b commit aebab38

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

cses/1666-1.ans

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
1
2+
1 3

cses/1666-1.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
4 2
2+
1 2
3+
3 4

cses/1666.cc

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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+
}

0 commit comments

Comments
 (0)