USACO 2020 - Meetings

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

Hai chuồng bò nằm tại các vị trí \(0\)\(L\) (\(1 \leq L \leq 10^9\)) trên một trục số một chiều. Ngoài ra còn có \(N\) cô bò (\(1 \leq N \leq 5\cdot 10^4\)) ở các vị trí phân biệt trên trục số này (có thể coi các chuồng bò và các cô bò là những điểm). Ban đầu, mỗi bò \(i\) nằm tại một vị trí \(x_i\) và di chuyển theo chiều dương hoặc chiều âm với vận tốc một đơn vị mỗi giây, được biểu diễn bởi một số nguyên \(d_i\) bằng \(1\) hoặc \(-1\). Mỗi cô bò còn có trọng lượng \(w_i\) thuộc phạm vi \([1,10^3]\). Tất cả các cô bò luôn di chuyển với vận tốc không đổi cho đến khi xảy ra một trong những sự kiện sau:

  • Nếu bò \(i\) đến một chuồng bò thì bò \(i\) dừng di chuyển.
  • Một cuộc gặp xảy ra khi hai bò \(i\)\(j\) cùng ở một điểm, trong đó điểm này không phải là chuồng bò. Khi đó, bò \(i\) nhận vận tốc trước đó của bò \(j\) và ngược lại. Lưu ý rằng các cô bò có thể gặp nhau tại những điểm không nguyên.

Gọi \(T\) là thời điểm sớm nhất mà tổng trọng lượng của những cô bò đã dừng di chuyển (do đến một trong hai chuồng) ít nhất bằng một nửa tổng trọng lượng của tất cả các cô bò. Hãy xác định tổng số cuộc gặp giữa các cặp bò trong khoảng thời gian \(0 \ldots T\) (kể cả tại thời điểm \(T\)).

Phân nhóm

  • Các test 2–4 thỏa mãn \(N \leq 10^2\)\(w_i=1\) với mọi \(i\).
  • Các test 5–7 thỏa mãn \(N \leq 10^2\).

Dữ liệu vào

Dòng đầu tiên chứa hai số nguyên \(N\)\(L\), cách nhau bởi dấu cách.

Mỗi dòng trong \(N\) dòng tiếp theo chứa ba số nguyên \(w_i\), \(x_i\)\(d_i\), cách nhau bởi dấu cách. Tất cả các vị trí \(x_i\) đều phân biệt và thỏa mãn \(0<x_i<L\).

Dữ liệu ra

In một dòng duy nhất chứa đáp án.

Ví dụ

Ví dụ 1

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

Các cô bò trong ví dụ này di chuyển như sau:

  1. Bò thứ nhất và bò thứ hai gặp nhau tại vị trí 1.5 ở thời điểm 0.5. Bò thứ nhất lúc này có vận tốc \(-1\) và bò thứ hai có vận tốc \(1\).
  2. Bò thứ hai và bò thứ ba gặp nhau tại vị trí 2 ở thời điểm 1. Bò thứ hai lúc này có vận tốc \(-1\) và bò thứ ba có vận tốc \(1\).
  3. Bò thứ nhất đến chuồng bên trái ở thời điểm 2.
  4. Bò thứ hai đến chuồng bên trái ở thời điểm 3.
  5. Quá trình lúc này kết thúc vì tổng trọng lượng của những cô bò đã đến một chuồng ít nhất bằng một nửa tổng trọng lượng của tất cả các cô bò. Bò thứ ba lẽ ra sẽ đến chuồng bên phải ở thời điểm 4.

Có đúng hai cuộc gặp đã xảy ra.

Nguồn

USACO 2019 December Contest, Silver - Meetings: https://usaco.org/index.php?page=viewproblem2&cpid=967

Tác giả: Benjamin Qi.

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: