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
Added by:  ThanhVy Hua 
Date:  20070328 
Time limit:  0.166s 
Source limit:  50000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel Pentium G860 3GHz) 
Languages:  All except: ERL JS 
Resource:  Coauthor Amber 
hide comments
Aman Agarwal:
20150526 10:42:53
1st question of graph.. :)


anksin:
20150524 18:01:15
Just one graph traversal, no need to apply union find!!!! 

pk:
20150523 08:29:50
AC in 2nd go... union find algorithm is easy... just a few few line of code... :)


Rakend Chauhan:
20150522 15:54:41
maintaining a proper visited array is enough to solve this problem 

rpc1:
20150519 22:37:29
@Pavan Thangella: You got lucky! There is one instance in this problem so you had a 50% change of getting it right. There is no way around having to do a bfs/dps. You have to search in any case to check the connectivity of the graph. See "http://en.wikipedia.org/wiki/Connectivity_(graph_theory)#Computational_aspects" for more info. 

OneMoreError:
20150511 14:06:24
my first bfs :) 

jasongog:
20150415 17:03:05
I used:


Pavan Thangella:
20150414 02:33:19
No need of any graph algorithms. Maintain a visited array is enough. 

parmeet bhatia:
20150328 13:32:50
Do not assume connected graph (one connected component). I got one WA because of that. 

Harish Reddy Kolanu:
20150218 14:56:43
Try using union find algorithm
