Come Back Quickly

AtCoder
IDabc191_e
Time3000ms
Memory256MB
Difficulty
In the Republic of AtCoder, there are $N$ towns numbered $1$ through $N$ and $M$ roads numbered $1$ through $M$. Road $i$ is a one-way road from Town $A_i$ to Town $B_i$, and it takes $C_i$ minutes to go through. It is possible that $A_i = B_i$, and there may be multiple roads connecting the same pair of towns. Takahashi is thinking about taking a walk in the country. We will call a walk **valid** when it goes through one or more roads and returns to the town it starts at. For each town, determine whether there is a valid walk that starts at that town. Additionally, if the answer is yes, find the minimum time such a walk requires. ## Constraints * $1 \le N \le 2000$ * $1 \le M \le 2000$ * $1 \le A_i \le N$ * $1 \le B_i \le N$ * $1 \le C_i \le 10^5$ * All values in input are integers. ## Input Input is given from Standard Input in the following format: $N$ $M$ $A_1$ $B_1$ $C_1$ $A_2$ $B_2$ $C_2$ $A_3$ $B_3$ $C_3$ $\hspace{25pt} \vdots$ $A_M$ $B_M$ $C_M$ [samples]
Samples
Input #1
4 4
1 2 5
2 3 10
3 1 15
4 3 20
Output #1
30
30
30
-1

By Roads $1, 2, 3$, Towns $1, 2, 3$ forms a ring that takes $30$ minutes to go around.  
From Town $4$, we can go to Towns $1, 2, 3$, but then we cannot return to Town $4$.
Input #2
4 6
1 2 5
1 3 10
2 4 5
3 4 10
4 1 10
1 1 10
Output #2
10
20
30
20

There may be a road such that $A_i = B_i$.  
Here, we can use just Road $6$ to depart from Town $1$ and return to that town.
Input #3
4 7
1 2 10
2 3 30
1 4 15
3 4 25
3 4 20
4 3 20
4 3 30
Output #3
\-1
-1
40
40

Note that there may be multiple roads connecting the same pair of towns.
API Response (JSON)
{
  "problem": {
    "name": "Come Back Quickly",
    "description": {
      "content": "In the Republic of AtCoder, there are $N$ towns numbered $1$ through $N$ and $M$ roads numbered $1$ through $M$.   Road $i$ is a one-way road from Town $A_i$ to Town $B_i$, and it takes $C_i$ minutes ",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 3000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "abc191_e"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "In the Republic of AtCoder, there are $N$ towns numbered $1$ through $N$ and $M$ roads numbered $1$ through $M$.  \nRoad $i$ is a one-way road from Town $A_i$ to Town $B_i$, and it takes $C_i$ minutes ...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments