ABC 404 C - Cycle Graph?

#fff5034681a74d88ba92b4cce7063e93
2025.11.23
2025.11.23
std::vector<llong> visited;
std::vector<std::vector<llong>> edges;

void search(llong v) {
  if (!visited[v]) {
    visited[v] = true;

    for (auto &&u : edges[v]) {
      search(u);
    }
  }
}

void answer() {
  llong N, M;
  read(N, M);
  edges.resize(N);

  for (llong i = 0; i < M; i++) {
    llong A_i, B_i;
    read(A_i, B_i);
    A_i--, B_i--;
    edges[A_i].push_back(B_i);
    edges[B_i].push_back(A_i);
  }

  visited.resize(N);
  search(0);

  llong result = true;

  for (llong i = 0; i < N; i++) {
    result = result && (visited[i] && edges[i].size() == 2);
  }

  writeln(result ? "Yes" : "No");
}