Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int N = 1e5+5;
- int totalNodes, totalEdges;
- vector <int> edges[N];
- bitset <N> visited;
- int answer;
- int deepFirstSearch(int node = 1){
- visited[node] = true;
- int numberVertexes = 0;
- for ( auto it : edges[node] ){
- if ( !visited[it] ){
- int numberNodes = deepFirstSearch(it);
- if ( numberNodes%2 == 0 )
- answer ++;
- else
- numberVertexes += numberNodes;
- }
- }
- return numberVertexes+1;
- }
- inline void readVariables(){
- cin >> totalNodes >> totalEdges;
- int origin, destination;
- for ( ; totalEdges; totalEdges-- ){
- cin >> origin >> destination;
- edges[origin].push_back(destination);
- edges[destination].push_back(origin);
- }
- }
- int main(){
- readVariables();
- deepFirstSearch();
- cout << answer;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement