Under construction

Still being built. Things may change

Fare and Balanced

Time limit2sMemory limit1024 MB

Summary
Given a directed acyclic road network from intersection 1 to N, place tolls so every route costs the same, with at most one toll per route, minimizing the final cost.
Level

Medium7 of 10

Topics
Shortest path, Topological sort, Graph
Solved
No attempts yet

Problem

Handling traffic congestion is a difficult challenge for young urban planners. Millions of drivers, each with different goals and each making independent choices, combine to form a complex system with sometimes predictable, sometimes chaotic behavior. As a devoted civil servant, you have been tasked with optimizing rush hour traffic over collections of roads.

All the roads lie between a residential area and a downtown business district. In the morning, each person living in the residential area drives a route to the business district. The morning commuter traffic on any particular road travels in only one direction, and no route has cycles (morning drivers do not backtrack).

Each road takes a certain time to drive, so some routes are faster than others. Drivers are much more likely to choose the faster routes, which leads to congestion on those roads. To balance the traffic as much as possible, you add tolls to some roads so that the perceived "cost" of every route ends up the same. To avoid annoying drivers too much, you must not levy a toll on any driver twice, no matter which route he or she takes.

Figure 5 shows a collection of five roads that form routes from the residential area (at intersection 1) to the downtown business district (at intersection 4). The driving cost of each road is written in large blue font. The dotted arrows show the three possible routes from 1 to 4. Initially the costs of the routes are 10, 8 and 12. After adding a toll of cost 2 to the road connecting 1 and 4 and a toll of cost 4 to the road connecting 3 and 4, the cost of each route becomes 12.

Figure 5: Roads connecting residential area at intersection 1 to business district at intersection 4

You must determine which roads should have tolls and how much each toll should be so that every route from start to finish has the same cost (driving time cost + possible toll) and no route contains more than one toll road. The tolls should also be chosen to minimize the final cost. In some settings, it might be impossible to impose tolls that satisfy the above conditions.

Input

Input consists of several test cases. A test case starts with a line containing an integer NN (2 ≤ NN ≤ 50000), which is the number of road intersections, and RR (1 ≤ RR ≤ 50000), which is the number of roads. Each of the next RR lines contains three integers xix_i, yiy_i, and cic_i (1 ≤ xix_i, yiy_i ≤ NN, 1 ≤ cic_i ≤ 1000), indicating that morning traffic takes road ii from intersection xix_i to intersection yiy_i with a base driving time cost of cic_i. Intersection 1 is the starting residential area, and intersection NN is the goal business district. Roads are numbered from 1 to RR in the given input order. Every intersection is part of a route from 1 to NN, and there are no cycles.

The last test case is followed by a line containing two zeros.

Output

For each test case, print one line containing the case number (starting with 1), the number of roads to toll (TT), and the final cost of every route. On the next TT lines, print the road number ii and the positive cost of the toll to apply to that road. If there are multiple minimal cost solutions, any will do. If there are none, print No solution. Follow the format of the sample output.

Examples1

  1. Example 1

    Input
    4 5
    1 3 5
    3 2 1
    2 4 6
    1 4 10
    3 4 3
    3 4
    1 2 1
    1 2 2
    2 3 1
    2 3 2
    0 0
    
    Expected output
    Case 1: 2 12
    4 2
    5 4
    Case 2: No solution