USACO 2014 - Airplane Boarding

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: 2100 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

\(N\) cô bò của FJ đã quyết định đi nghỉ và, thật kỳ diệu, tìm được một hãng hàng không sẵn lòng bán vé cho chúng. Tuy nhiên, khi đến sân bay và bắt đầu lên máy bay, chúng phải đối mặt với một vấn đề thú vị.

Máy bay có \(N\) ghế, được mô hình hóa thành các điểm từ \(x=1\) đến \(x=N\) trên trục số. Cả \(N\) cô bò (\(1 \le N \le 200\,000\)) đang xếp hàng chờ đi đến ghế của mình. Bò \(N\) ở vị trí \(x=0\), bò \(N-1\) ở vị trí \(x=-1\), và cứ tiếp tục như vậy. Bò \(i\) được xếp vào ghế \(S_i\), trong đó \(S_1,\ldots,S_N\) là một hoán vị của \(1,\ldots,N\).

Ở mỗi bước thời gian, mỗi cô bò bước sang phải nếu có thể. Khi bò \(i\) đến ghế \(S_i\) của mình, cô sẽ dừng lại để cất hành lý vào ngăn phía trên; việc này mất \(T_i\) giây, sau đó cô mới ngồi xuống. Trong \(T_i\) bước ấy, cô bò đứng ngay sau (nếu có) bị chặn và không thể tiến lên. Nếu phía sau cô là cả một hàng bò thì toàn bộ hàng đó cũng bị chặn.

Hỏi cần bao lâu để tất cả các cô bò ngồi xuống?

Tổng \(T_i\) của tất cả các cô bò nhỏ hơn \(1\,000\,000\,000\).

Dữ liệu vào

  • Dòng đầu tiên chứa một số nguyên \(N\).
  • \(N\) dòng tiếp theo, dòng thứ \(i\) chứa hai số nguyên \(S_i\)\(T_i\) cách nhau bởi dấu cách.

Ràng buộc

  • \(1 \le N \le 200\,000\).
  • \(S_1,\ldots,S_N\) là một hoán vị của \(1,\ldots,N\).
  • Tổng \(T_i\) của tất cả các cô bò nhỏ hơn \(1\,000\,000\,000\).

Dữ liệu ra

In ra thời gian cần thiết để tất cả các cô bò ngồi vào ghế.

Ví dụ

Ví dụ 1

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

Ban đầu, các cô bò được sắp xếp như sau:

cows -> 123
           123 <- seats

trong đó bò \(1\) đang cố đến ghế \(2\), bò \(2\) đang cố đến ghế \(3\), còn bò \(3\) đang cố đến ghế \(1\).

Sau một bước, tất cả đều dịch sang phải \(1\) đơn vị và bò \(3\) đến được ghế của mình:

 123
   123

\(3\) mất \(5\) giây để ngồi xuống, và tại thời điểm đó có thể xem như cô biến mất.

 12
   123

\(1\) và bò \(2\) cần thêm \(3\) giây để đến được những chiếc ghế được chỉ định:

    12
   123

\(1\) mất \(5\) giây để ngồi xuống và bò \(2\) mất \(10\) giây, nên giai đoạn này mất tổng cộng \(10\) giây.

Tổng thời gian là \(1+5+3+10=19\) giây.

Nguồn

USACO 2014 February Contest, Gold — Airplane Boarding

Tác giả: Travis Hance.

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: