Đua xe (Race)

Đề bài

Mô tả

Một đường đua thẳng dài s km có n chiếc xe cùng xuất phát tại vị trí 0 tại thời điểm 0. Mỗi xe i được mô tả bởi một dãy đoạn vận tốc: trên đoạn thứ j xe chạy với vận tốc không đổi vi,j km/h trong ti,j giờ. Các đoạn được liệt kê theo đúng thứ tự thời gian. Tổng quãng đường mỗi xe đi đúng bằng s km.

Một lần vượt là sự kiện mà một xe trở thành dẫn trước một xe khác (chuyển từ vị thế ngang bằng hoặc kém hơn sang vị thế ở phía trước). Bài toán đảm bảo không có khoảng thời gian dương nào mà hai xe luôn cùng vị trí — mọi sự kiện vượt xảy ra tức thời. Tại cùng một thời điểm tại cùng một điểm có thể có nhiều cặp xe vượt nhau — mỗi cặp được tính riêng.

Sự kiện hai xe cùng có mặt tại vạch xuất phát (vị trí 0) hoặc tại vạch đích (vị trí s) không được tính là vượt.

Hãy đếm tổng số lần vượt xảy ra trong suốt cuộc đua.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên ns.
  • Tiếp theo là n dòng, mỗi dòng mô tả một xe. Dòng thứ i bắt đầu bằng số nguyên ki — số đoạn vận tốc của xe i, sau đó là ki cặp số nguyên vi,j ti,j phân cách bởi dấu cách.

Dữ liệu ra

In ra một số nguyên duy nhất — tổng số lần vượt giữa các cặp xe trong cuộc đua.

Ràng buộc

  • 2n100
  • 1s106
  • 1ki100
  • 1vi,j,ti,j1000
  • Với mỗi xe, tổng jvi,j·ti,j=s.
  • Bài toán đảm bảo mọi lần vượt đều xảy ra tức thời.

Ví dụ

Input Output Giải thích
2 33
2 5 1 2 14
1 3 11
1 Xe 1 dẫn trước trong giây đầu (chạy 5 km/h, xe 2 chạy 3 km/h). Sau đó xe 1 giảm xuống 2 km/h trong khi xe 2 vẫn 3 km/h, nên xe 2 đuổi kịp rồi vượt lên một lần.
2 33
2 1 3 10 3
1 11 3
0 Trong 3 giờ đầu xe 2 luôn dẫn trước (11 > 1). Từ giờ thứ 3 trở đi xe 1 chạy 10 km/h trong khi xe 2 đã về đích — không cặp xe nào vượt nhau.
5 33
2 1 3 3 10
1 11 3
2 5 3 3 6
2 3 1 10 3
2 6 3 3 5
2 Trong cả cuộc đua, tổng cộng có đúng hai lần một xe vượt lên trên một xe khác.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0