PT07Z - Longest path in a tree

You are given an unweighted, undirected tree. Write a program to output the length of the longest path (from one node to another) in that tree. The length of a path in this case is number of edges we traverse from source to destination.


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


Print the length of the longest path on one line.


1 2
2 3


hide comments
saiyaman_098: 2018-04-09 20:48:03

What's the bfs+dp approach?

rahuldcoder: 2018-03-17 15:32:31

Why running two dfs solves the problem.I still do not get it.

hsmfawaz: 2018-03-14 03:02:36

Its a Tree diameter problem so you have 2 solutions to get AC with oneshot
1- using dfs little hard
2- using to bfs( First one to get the the furthest from any node then bfs with the the furthest you got )

hai_dee: 2018-03-10 04:24:25

Yay AC in one go Python, using a single BFS + DP approach :D Fun problem!

kartik_354: 2018-02-02 14:22:24

the test cases of this question are weak..plz correct them..
1 2
2 3
3 4
4 5
2 6
6 7
the correct output is 5 but my ACCEPTED code is giving 4....:P

Last edit: 2018-02-02 14:24:05
bani_raheja: 2018-01-03 21:25:31

First did it in around september when I had no knowledge of DP, by using two BFS. Did it again with dp in January. Trust me, you'd love the DP idea. It's much more reliable than 2 BFSs.

aniket000: 2017-12-29 19:39:00

@diptark_bose , you can take node 1 as the starting node for the first dfs (used to calculate the farthest node) as it must be present in every test case , then use farthest node as the starting node for the second dfs.

aniket000: 2017-12-29 19:35:15

just calculate the diameter of the tree, diameter-1 is your longest path in the tree

diptark_bose: 2017-12-20 16:40:57

How to decide the initial starting node when doing the 2 bfs approach?

sambit95: 2017-12-17 20:19:47

I'm pretty sure there are test cases with 0<=U,V<=N when it says 1<=U,V<=N. faced SIGSEGV (Don't decrease the node no by 1)

Added by:Thanh-Vy Hua
Time limit:0.5s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ERL JS-RHINO NODEJS PERL6 VB.NET
Resource:Co-author Amber