Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cmath>
- #include <iostream>
- #include <vector>
- #include <algorithm>
- #include <string>
- #include <set>
- #include <map>
- #include <list>
- #include <time.h>
- #include <math.h>
- #include <random>
- #include <deque>
- #include <queue>
- #include <cassert>
- #include <unordered_map>
- #include <unordered_set>
- #include <iomanip>
- #include <bitset>
- #include <sstream>
- #include <chrono>
- #include <cstring>
- #include <fstream>
- using namespace std;
- typedef long long ll;
- const ll mod = 1e9 + 7;
- vector<vector<int>> a;
- vector<bool> flag;
- vector<vector<int>> c;
- void dfs(int v){
- flag[v] = true;
- c.back().push_back(v + 1);
- for(int u : a[v]){
- if(!flag[u])
- dfs(u);
- }
- }
- int main()
- {
- fstream in;
- in.open("input.txt", ios::out);
- int n, m;
- in >> n >> m;
- a.resize(n);
- flag.resize(n);
- for(int i = 0; i < m; ++i){
- int v, u;
- cin >> v >> u;
- --v; --u;
- a[v].push_back(u);
- a[u].push_back(v);
- }
- for(int i = 0; i < n; ++i){
- if(!flag[i]){
- c.push_back({});
- dfs(i);
- }
- }
- cout << c.size() << "\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement