USACO 2012 - Running Laps

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

Chán đua ngựa, Farmer John quyết định nghiên cứu tính khả thi của môn đua bò. Ông cho \(N\) con bò (\(1 \le N \le 100\,000\)) chạy một cuộc đua gồm \(L\) vòng quanh đường đua hình tròn có độ dài \(C\). Tất cả bò xuất phát tại cùng một điểm trên đường đua và chạy với các vận tốc khác nhau; cuộc đua kết thúc khi con bò nhanh nhất đã chạy đủ tổng quãng đường \(LC\).

FJ nhận thấy nhiều lần một con bò vượt qua một con khác và tự hỏi loại "sự kiện vượt nhau" này xảy ra bao nhiêu lần trong toàn bộ cuộc đua. Cụ thể hơn, một sự kiện vượt nhau được xác định bởi một cặp bò \((x,y)\) và một thời điểm \(t\) (nhỏ hơn hoặc bằng thời điểm kết thúc cuộc đua), tại đó bò \(x\) vượt lên trước bò \(y\). Hãy giúp FJ đếm tổng số sự kiện vượt nhau trong toàn bộ cuộc đua.

Dữ liệu vào

  • Dòng 1 chứa ba số nguyên \(N\), \(L\)\(C\), cách nhau bởi dấu cách (\(1 \le L,C \le 25\,000\)).
  • Các dòng từ 2 đến \(1+N\): Dòng \(i+1\) chứa vận tốc của con bò \(i\), là một số nguyên trong khoảng từ 1 đến \(1\,000\,000\).

Dữ liệu ra

  • Dòng 1 chứa tổng số sự kiện vượt nhau trong toàn bộ cuộc đua.

Ví dụ

Ví dụ 1

Input
4 2 100
20
100
70
1
Output
4
Giải thích

Có 4 con bò chạy 2 vòng trên một đường đua hình tròn dài 100. Vận tốc của chúng lần lượt là 20, 100, 70 và 1.

Cuộc đua kéo dài 2 đơn vị thời gian vì đây là thời gian con bò nhanh nhất (bò số 2) cần để về đích. Trong khoảng thời gian đó có 4 sự kiện vượt nhau: bò số 2 vượt bò số 1 và số 4, còn bò số 3 vượt bò số 1 và số 4.

Nguồn

USACO 2012 US Open, Silver Division — Running Laps

Tác giả: Brian Dean, 2012.

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: