USACO 2013 - Milk Scheduling

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1300 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

\(N\) con bò của Farmer John (\(1 \le N \le 10\,000\)) được đánh số thuận tiện từ \(1\) đến \(N\). Việc vắt sữa bò thứ \(i\) mất \(T(i)\) đơn vị thời gian. Thật không may, do cách bố trí chuồng của FJ, một số con bò phải được vắt sữa trước những con khác. Nếu bò \(A\) phải được vắt sữa trước bò \(B\), thì FJ cần hoàn tất việc vắt sữa bò \(A\) trước khi có thể bắt đầu vắt sữa bò \(B\).

Để vắt sữa đàn bò nhanh nhất có thể, FJ đã thuê rất nhiều người làm nông hỗ trợ công việc — đủ người để vắt sữa đồng thời bao nhiêu con bò cũng được. Tuy nhiên, dù các con bò có thể được vắt sữa cùng lúc, các ràng buộc yêu cầu một số con bò phải được vắt sữa trước những con khác vẫn giới hạn tốc độ hoàn thành toàn bộ quá trình. Hãy giúp FJ tính tổng thời gian tối thiểu mà quá trình vắt sữa phải mất.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên \(N\) (số lượng bò) và \(M\) (số lượng ràng buộc về thứ tự vắt sữa; \(1 \le M \le 50\,000\)), cách nhau bởi dấu cách.
  • \(N\) dòng tiếp theo: dòng thứ \(i\) chứa giá trị \(T(i)\) (\(1 \le T(i) \le 100\,000\)).
  • \(M\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(A\)\(B\), cách nhau bởi dấu cách, cho biết bò \(A\) phải được vắt sữa xong hoàn toàn trước khi có thể bắt đầu vắt sữa bò \(B\). Các ràng buộc này không bao giờ tạo thành chu trình, vì vậy luôn tồn tại lời giải.

Dữ liệu ra

In ra lượng thời gian tối thiểu cần để vắt sữa tất cả các con bò.

Ví dụ

Ví dụ 1

Input
3 1
10
5
6
3 2
Output
11
Giải thích

\(3\) con bò. Thời gian cần để vắt sữa từng con lần lượt là \(10\), \(5\)\(6\). Bò \(3\) phải được vắt sữa xong hoàn toàn trước khi có thể bắt đầu vắt sữa bò \(2\).

Ban đầu có thể vắt sữa đồng thời bò \(1\) và bò \(3\). Khi vắt sữa xong bò \(3\), có thể bắt đầu vắt sữa bò \(2\). Tất cả các con bò được vắt sữa xong sau \(11\) đơn vị thời gian.

Nguồn

USACO 2013 February Contest, Silver — Problem 3: Milk Scheduling

Tác giả đề: Kalki Seksaria, 2013.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: