BÓNG RƠI BALL.CPP CÓ MỘT TRÒ CHƠI HỨNG BÓNG TRÊN MÁY TÍNH. TRONG MỘ...

Bài 2: Bóng rơi Ball.cpp

Có một trò chơi hứng bóng trên máy tính. Trong một mức chơi có N quả bóng sẽ rơi thẳng

xuống dưới. Người chơi di chuyển chiếc hộp theo chiều ngang để hứng các quả bóng rơi. Quả

bóng rơi và chiếc hộp di chuyển trong một cửa sổ có kích thước chiều ngang là 800 đơn vị, chiều

cao là 600 đơn vị, góc dưới bên trái trùng với gốc tọa độ. Chiếc hộp chỉ di chuyển nằm ngang có

tung độ bằng 0. Bóng luôn rơi ở điểm có tung độ bằng 600. Người chơi chỉ hứng được quả bóng

khi mà tâm của chiếc hộp trùng với tâm của quả bóng và tại cùng một thời điểm. Trong một đơn

vị thời gian, chiếc hộp di chuyển và quả bóng rơi được một đơn vị dài. Khi kết thúc một mức

1/3

chơi, số điểm của người chơi đạt được chính là số quả bóng đã hứng được trong mức chơi đó. Vị

trí chiếc hộp ban đầu do người chơi tự chọn.

Bạn Crack thích chơi trò này. Sau một thời gian lần mò trong máy tính, Crack đã tìm ra

nơi lưu các thông số của mức chơi K. Crack đưa các thông số đó cho bạn và đố bạn biết: nếu

người chơi giỏi nhất thì ở mức K này sẽ đạt cao nhất là bao nhiêu điểm? Biết: Các tọa độ và thời

gian rơi của bóng đều nguyên dương. Không có hai quả bóng nào có cùng tọa độ và thời gian rơi.

Dữ liệu vào: từ tệp văn bản BALL.INP gồm có:

- Dòng 1: chứa số N – số quả bóng trong mức chơi K (N nguyên dương, không quá 15

000)

- Dòng thứ i trong N dòng tiếp theo, mỗi dòng chứa 2 số T

i

và X

i

thể hiện quả bóng thứ i

bắt đầu rơi tại thời điểm T

i

và tại tọa độ (X

i

,600)

Dữ liệu ra: đưa kết quả tìm được ra tệp văn bản BALL.OUT, chứa duy nhất 1 số D là số điểm

cao nhất mà người chơi có thể đạt được.

Ví dụ:

BALL.INP BALL.OUT

3

5

1 100

1 20

15 30

15 500

30 20