trang chủ / bài tập / sayhello

Nói Hello

Đề bài

Mô tả

Hai người bạn AB di chuyển trên mặt phẳng tọa độ. Người ta ghi nhận vị trí của cả hai người tại N thời điểm. Giữa hai thời điểm ghi nhận liên tiếp, mỗi người hoặc đứng yên, hoặc di chuyển thẳng đều (theo một hướng cố định với vận tốc không đổi) từ vị trí cũ đến vị trí mới; cả hai di chuyển đồng thời trong cùng khoảng thời gian đó.

Hai người sẽ nói "Hello!" với nhau tại một thời điểm nào đó (có thể nằm giữa hai thời điểm ghi nhận) nếu khoảng cách giữa họ khi đó không vượt quá d1 và thỏa mãn ít nhất một trong hai điều kiện:

  • đây là lần đầu tiên họ nói chuyện với nhau, hoặc
  • sau lần nói chuyện gần nhất, đã có lúc khoảng cách giữa họ lớn hơn d2.

Hãy đếm tổng số lần hai người nói "Hello!" với nhau.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên N: số thời điểm ghi nhận vị trí.
  • Dòng thứ hai chứa hai số nguyên d1d2.
  • N dòng tiếp theo, mỗi dòng chứa bốn số nguyên Ax,Ay,Bx,By: tọa độ của người A và người B tại thời điểm tương ứng.

Dữ liệu ra

In ra một số nguyên duy nhất: số lần hai người nói "Hello!" với nhau.

Ràng buộc

  • 2N105
  • 0<d1<d2<1000
  • 0Ax,Ay,Bx,By1000

Ví dụ

Input Output Giải thích
4
2 5
0 0 0 10
5 5 5 6
5 0 10 5
14 7 10 5
2 Lần đầu họ chào nhau quanh thời điểm thứ 2 (khoảng cách bằng 1). Sau đó khoảng cách vượt quá d2=5 ở thời điểm thứ 3, rồi trong lúc A di chuyển từ vị trí thứ 3 đến vị trí thứ 4 (trong khi B đứng yên), khoảng cách lại giảm xuống không quá d1=2: lần chào thứ hai.
2
20 50
260 817 240 917
573 444 553 374
1 Tại cả hai thời điểm ghi nhận, khoảng cách giữa hai người đều lớn hơn d1=20, nhưng trong quá trình di chuyển giữa hai thời điểm, có lúc khoảng cách giảm xuống đúng bằng 20, nên họ chào nhau một lần.

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