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
malcolm123_ssj: 2019-01-06 07:24:40

Check for two conditions:
1) n = e+1
2) The graph has only one connected component.

If condition 1 is false, then it isn't a tree. If condition 1 is true, then check for condition 2. If condition 2 is true, then the graph is a tree. Otherwise, the graph isn't a tree.

Simple AC in one go :D

artistic_15: 2018-12-29 20:05:48

Easy Union Find Implementation.

suyashky: 2018-11-27 08:40:39

learned a lot....good question for beginners.
Need to know property of tree and DFS

sudhanshu751: 2018-10-28 21:12:31

Last edit: 2018-10-29 18:12:57
sudhanshu751: 2018-10-28 21:09:15

Last edit: 2018-10-28 21:13:25
themast3r: 2018-09-22 18:44:52

Simple Disjoint Set Union gets AC!

harry_shit: 2018-09-19 12:54:03

can someone tell me what will be the start node.is it 1??

phoemur: 2018-09-12 00:58:36

Beware Adjacency Matrix will most likely TLE.
Use simple Adjacency List instead...

Costed me 3 TLE

frpartho: 2018-07-28 22:34:31

simple dfs. increment a counter on dfs function. if counter > node*node then there is a cycle.

rohitnarayan: 2018-06-24 23:04:46

Simple DFS!!


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