## PT07Y - Is it a tree

You are given an unweighted, undirected graph. Write a program to check if it's a tree topology.

### Input

The first line of the input file contains two integers N and M --- number of nodes and number of edges in the graph (0 < N <= 10000, 0 <= M <= 20000). Next M lines contain M edges of that graph --- Each line contains a pair (u, v) means there is an edge between node u and node v (1 <= u,v <= N).

### Output

Print YES if the given graph is a tree, otherwise print NO.

### Example

```Input:
3 2
1 2
2 3

Output:
YES
```

hide comments
 < Previous 1 2 3 4 5 6 7 8 9 10 11 Next > amansingh_20: 2021-11-29 09:25:50 AC in one go.... Just check cycle and connected components. shofiqur_052: 2021-08-17 21:50:21 Number of connected component 1 And M < N ... Enough to get AC; avx_5801: 2021-07-09 11:08:30 You have to also check self loop condition,then you get AC in one GO by Using simple dfs :) mortal_beast: 2021-06-30 15:19:14 easy one the_art_maniac: 2021-05-29 00:17:25 Some test cases that will help you: 9 8 7 8 2 3 8 3 6 3 5 3 7 9 9 1 9 4 YES 9 8 1 2 2 3 3 4 1 4 5 6 7 8 9 7 8 9 NO yasser1110: 2021-02-19 14:54:05 +1 @jrseinc disjoint union set solution is the most straightforward one. Even though adjacency matrix and adjacency list solutions also work. Last edit: 2021-02-19 14:54:25 kelmi: 2021-01-19 13:43:46 Try graphs like this one: 7 6 3 3 7 6 1 5 7 4 6 7 2 4 NO kelmi: 2021-01-19 11:42:16 Keep the following edge cases in mind: 1 0 YES 0 0 NO kushgupta_19: 2020-10-16 19:55:17 For tree:- Number of connected components=1. Number of edges should be 1 less than number of vertices. These 2 conditions are enough to get AC:) ican_code: 2020-10-02 13:48:36 just make sure to type YES and not Yes . i hate it

 Added by: Thanh-Vy Hua Date: 2007-03-28 Time limit: 0.5s Source limit: 50000B Memory limit: 1536MB Cluster: Cube (Intel G860) Languages: All except: ERL JS-RHINO Resource: Co-author Amber