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
sunny: 2019-01-19 19:16:03

TLE on spoj. Same problem AC on codechef. On codechef time shown is 0.08s taken for AC. WTF!!

dkkv0000: 2019-01-19 18:38:14

beware graph is directed!!!!

Last edit: 2019-01-19 18:38:23
gaurav_2000: 2019-01-14 15:48:32

GRAPH IS DIRECTED.
GOT WA 5 TIMES.
Try on Test Case
6 5
1 4
2 4
3 4
5 4
5 6
Ans- No

Last edit: 2019-01-19 05:51:24
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

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.


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