Longest Path

View as PDF

Submit solution

Points: 10 (partial)
Time limit: 1.0s
Memory limit: 512M

Problem types
Allowed languages
Ada, Assembly, Awk, Brain****, C, C#, C++, COBOL, CommonLisp, D, Dart, F#, Forth, Fortran, Go, Groovy, Haskell, Intercal, Java, JS, Kotlin, Lisp, Lua, Nim, ObjC, OCaml, Octave, Pascal, Perl, PHP, Pike, Prolog, Python, Racket, Ruby, Rust, Scala, Scheme, Sed, Swift, TCL, Text, Turing, VB, Zig

These problems are from the atcoder DP contest, and were transferred onto DMOJ. All problem statements were made by several atcoder users. As there is no access to the test data, all data is randomly generated. If there are issues with the statement or data, please contact Rimuru or Ninjaclasher on slack.

There is a directed graph G with N vertices and M edges. The vertices are numbered 1, 2, \ldots, N, and for each i\ (1 \le i \le M), the i-th directed edge goes from Vertex x_i to y_i. G does not contain directed cycles.

Find the length of the longest directed path in G. Here, the length of a directed path is the number of edges in it.

Constraints

  • All values in input are integers.
  • 2 \le N \le 10^5
  • 1 \le M \le 10^5
  • 1 \le x_i, y_i \le N
  • All pairs (x_i, y_i) are distinct.
  • G does not contain directed cycles.

Input Specification

The first line will contain 2 space separated integers N, M.

The next M lines will contain 2 space separated integers, x_i, y_i.

Output Specification

Print the length of the longest directed path in G.

Sample Input 1

4 5
1 2
1 3
3 2
2 4
3 4

Sample Output 1

3

Explanation For Sample 1

The red directed path in the following figure is the longest:

Sample Input 2

6 3
2 3
4 5
5 6

Sample Output 2

2

Explanation For Sample 2

The red directed path in the following figure is the longest:

Sample Input 3

5 8
5 3
2 3
2 4
5 2
5 1
1 4
4 3
1 3

Sample Output 3

3

Explanation For Sample 3

The red directed path in the following figure is one of the longest:


Comments

There are no comments at the moment.