FFLOW - Fast Maximum Flow

no tags 




Cho một đồ thị với N (2 ≤ N ≤ 5,000) đỉnh được đánh số từ 1 đến N và M (1 ≤ M ≤ 30,000) cạnh vô hướng, có trọng số, hãy tính giá trị của luồng cực đại / lát cắt cực tiểu từ đỉnh 1 đến đỉnh N

Input

Dòng đầu chứa hai số nguyên N và M. M dòng tiếp theo, mỗi dòng chứa ba số nguyên A, B, và C, thể hiện việc có một cạnh với khả năng thông qua C (1 ≤ C ≤ 109) giữa nút A và nút B (1 ≤ A, B ≤ N). Lưu ý rằng có thể có nhiều cạnh giữa hai nút, cũng như có thể có một cạnh từ một nút đến chính nó.

Output

Viết ra một số nguyên duy nhất (có thể vượt quá kiểu số nguyên 32 bit) thể hiện giá trị của luồng cực đại / lát cắt cực tiểu giữa 1 và N.

Example

Input:
4 6
1 2 3
2 3 4
3 1 2
2 2 5
3 4 3
4 3 3

Output:
5

Nhìn bài toán dưới dạng luồng cực đại, ta có thể cho 3 đơn vị luồng chảy qua đường 1 - 2 - 3 - 4 và 2 đơn vị luồng qua đường 1 - 3 - 4. Nhìn dưới góc độ lát cắt cực tiểu, ta có thể cắt cạnh thứ nhất và thứ 3. Cả 2 cách đều có tổng giá trị là 5.

Bài gốc: https://www.spoj.com/problems/FASTFLOW/.


hide comments
[Rampage] Blue.Mary: 2021-05-19 10:37:52

I'm pretty interested in the data. My ~10-years-old flow lib gets TLE.

Last edit: 2021-05-19 17:41:35

Added by:Race with time
Date:2009-04-13
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ERL JS-RHINO NODEJS PERL6 VB.NET
Resource:Neal Wu - SPOJ