Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cassert>
- #include <algorithm>
- #include <vector>
- #include <unordered_map>
- #include "optimization.h"
- #include <map>
- #include <unordered_set>
- #define all(a) a.begin, a.end()
- using namespace std;
- vector<bool> mark;
- vector<vector<bool>> tree;
- bool flag = false;
- void dfs(int root){
- if (mark[root]){
- flag = true;
- return;
- }
- mark[root] = true;
- for (int child = 1; child <= size(tree[root]); child++){
- if (tree[root][child] && child != root){
- tree[root][child] = tree[child][root] = false;
- dfs(child);
- }
- }
- }
- int main(){
- int v;
- int e;
- cin >> v >> e;
- mark.resize(v+1, false);
- tree.resize(v+1, vector<bool> (v+1, false));
- for (int i = 0; i < e; i++){
- int a,b;
- cin >> a >> b;
- tree[a][b] = tree[b][a] = true;}
- dfs(1);
- if (flag){
- cout << "NO\n";
- }
- else{
- cout << "YES\n";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement