Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <vector>
- // #include <algorithm>
- // #include <utility>
- #define ULL unsigned long long
- #define LL long long
- #define uint unsigned int
- std::vector<std::vector<uint>> g;
- std::vector<bool> used;
- bool dfs(uint v) {
- used[v] = true;
- if (g[v].size() != 2) {
- return false;
- }
- for (uint u : g[v]) {
- if (used[u] == false) {
- dfs(u);
- }
- }
- return true;
- }
- int main(void) {
- uint n, m, cycles = 0;
- scanf("%u %u", &n, &m);
- g.resize(m);
- used.resize(n);
- //
- // printf("%u\n", n);
- // for (uint i = 0; i < n; i++) {
- // }
- uint v, u;
- for (uint i = 0; i < m; i++) {
- scanf("%u %u", &v, &u);
- g[v].push_back(u);
- g[u].push_back(v);
- }
- for (uint i = 0; i < n; i++) {
- if (!used[i]) {
- if (dfs(i)) {
- cycles++;
- }
- }
- }
- printf("%u\n", cycles);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement