CCO '15 P2 - Artskjid

View as PDF

Submit solution

Points: 15 (partial)
Time limit: 1.0s
Memory limit: 256M

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
Canadian Computing Olympiad: 2015 Day 1, Problem 2

There are many well-known algorithms for finding the shortest route from one location to another. People have GPS devices in their cars and in their phones to show them the fastest way to get where they want to go. While on vacation, however, Troy likes to travel slowly. He would like to take the longest route to his destination so that he can visit many new and interesting places along the way.

As such, a valid route consists of a sequence of distinct cities, c_1, c_2, \ldots, c_k, such that there is a road from c_i to c_{i+1} for each 1 \le i < k.

He does not want to visit any city more than once. Can you help him find the longest route?

Input Specification

The first line of input contains two integers n, m, the total number of cities and the number of roads connecting the cities (2 \le n \le 18; 1 \le m \le n^2 - n). There is at most one road from any given city to any other given city. Cities are numbered from 0 to n-1, with 0 being Troy's starting city, and n-1 being his destination.

The next m lines of input each contain three integers s, d, l. Each triple indicates that there is a one way road from city s to city d of length l km (0 \le s \le n - 1; 0 \le d \le n - 1; s \ne d; 1 \le l \le 10\,000). Each road is one-way: it can only be taken from s to d, not vice versa. There is always at least one route from city 0 to city n-1.

For at least 30% of the marks for this problem, n \le 8.

Output Specification

Output a single integer, the length of the longest route that starts in city 0, ends in city n-1, and does not visit any city more than once. The length is the sum of the lengths of the roads taken along the route.

Sample Input

3 3
0 2 5
0 1 4
1 2 3

Output for Sample Input

7

Explanation of Output for Sample Input

The shortest route would be to take the road directly from 0 to 2, of length 5 km. The route going from 0 to 1 to 2 is 4 + 3 = 7 km, which is longer.


Comments


  • 3
    aaronhe07  commented on July 24, 2020, 4:17 p.m.

    Can this problem be solved in polynomial time?


    • 4
      d  commented on July 24, 2020, 6:43 p.m.

      No. (assuming that P is not NP)


    • 1
      maxcruickshanks  commented on July 24, 2020, 6:32 p.m. edited

      Most likely no, since all the submissions to this problem are in exponential time.

      Edit: I'm stupid and thought exponential time was polynomial.


  • 7
    Plasmatic  commented on Aug. 29, 2018, 6:52 p.m.

    TFW you think the roads aren't one-directional


    • 12
      Riolku  commented on Dec. 28, 2018, 9:11 p.m.

      TFW you read this comment and still make the same mistake


  • 4
    Cueball1234  commented on Jan. 27, 2018, 11:41 p.m.

    TLE

    I am TLEing on Test case #8, even though my solution works on both the CCC Online Grader and PEG Judge. Is the judge running slower today?


    • 2
      Kirito  commented on Oct. 28, 2017, 12:29 p.m.

      Java 7 and 9 are currently down; try using Java 8.


  • 3
    bobhob314  commented on Dec. 12, 2015, 2:01 p.m.

    :)