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
Neeraj Singh Aithani: 2016-02-16 16:56:15

Actually Test Cases are very weak my solution for
4 3
4 2
4 3
2 1
is NO.But it is AC

dkumarsingh: 2016-01-22 21:14:52

i am using matrix to represent it's structure as a graph but getting sigsev error

Aqib Ahmed J: 2016-01-16 06:00:11

Tree doesn't have loops ! Cost me one WA :|

RADHE SHYAM LODHI: 2016-01-12 05:10:29

AC union set 0.00 ..

dokz: 2016-01-06 06:33:31

Got AC. Just run the single DFS:
1) Check for loops - grey (visited, but not left) vertex found - loop, output "NO"
2) Check for single connected component - after DFS all vertices should be colored black (visited and left)

Deepak : 2015-12-30 12:34:06

thanks @rahul for your hint

AASHISH KUMAR: 2015-12-25 10:01:02

AC in one go :) yeyii

rahul: 2015-12-23 19:29:15

i think this question can be solved easily if you focus on checking how many connected component it has if it has one connected component and edges=nodes-1 it will b accepted

ankurverma1994: 2015-12-23 15:22:25

Got AC with Union Find in 1st Attempt in Java. Don't know why its showing WA when using DFS in Java and getting AC(using same DFS code as in Java) in C++ with same logic... :(

MAYANK NARULA: 2015-12-08 09:41:20

Well This problem gave me some WAs .!!!!.... Maybe Graph has Self - loops at some vertices..


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