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

Hộp gương

Đề bài

Mô tả

Một chiếc hộp gỗ có chiều dài 105 cm và chiều cao 100 cm được đặt trong mặt phẳng toạ độ: thành trái nằm trên đường thẳng x=0, thành phải nằm trên đường thẳng x=105, sàn nằm trên đường thẳng y=0 và trần nằm trên đường thẳng y=100.

Trên thành trái có một lỗ nhỏ ở độ cao hl, trên thành phải có một lỗ nhỏ ở độ cao hr. Một số đoạn rời nhau trên sàn và trên trần được phủ gương; gương thứ i có điểm số vi, nằm trên trần nếu ci là "T" và nằm trên sàn nếu ci là "F", trải dài từ hoành độ ai đến hoành độ bi.

Bạn bắn một tia laser đi vào từ một lỗ và phải đi ra ở lỗ còn lại. Tia laser truyền thẳng, và mỗi khi chạm vào một gương thì phản xạ theo quy tắc góc tới bằng góc phản xạ. Tia laser chỉ được phản xạ trên gương: nếu nó chạm vào một điểm của sàn hoặc trần không được phủ gương thì tia bị chặn lại và đường đi đó không hợp lệ. Ngoài ra, tia không được chạm vào cùng một gương quá một lần.

Điểm của một đường đi hợp lệ là tổng vi của tất cả các gương mà tia chạm vào. Hãy tìm điểm lớn nhất có thể đạt được.

Điểm chạm của tia trùng đúng với đầu mút ai hoặc bi của một gương vẫn được tính là chạm vào gương đó (theo giả thiết, không có hai gương nào có điểm chung nên trường hợp này không gây nhập nhằng).

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên hl, hr, n: độ cao hai lỗ và số gương.
  • n dòng tiếp theo, dòng thứ i chứa vi, ci, ai, bi mô tả gương thứ i, trong đó ci là ký tự "T" (trần) hoặc "F" (sàn).

Dữ liệu ra

Một số nguyên duy nhất: điểm lớn nhất có thể đạt được.

Ràng buộc

  • 0<hl,hr<100
  • 0n100
  • 1vi1000
  • 0ai<bi105
  • Không có hai gương nào có điểm chung.

Ví dụ

Input Output Giải thích
50 50 7
10 F 1 80000
20 T 1 80000
30 T 81000 82000
40 T 83000 84000
50 T 85000 86000
60 T 87000 88000
70 F 81000 89000
100 Tia đi xuống trước và phản xạ ba lần: gương sàn 10 tại x16666,7, gương trần 20 tại x=50000, gương sàn 70 tại x83333,3, tổng 10+20+70=100.
80 72 9
15 T 8210 15679
10 F 11940 22399
50 T 30600 44789
50 F 32090 36579
5 F 45520 48519
120 F 49250 55229
8 F 59700 80609
35 T 61940 64939
2 T 92540 97769
120 Đường đi tốt nhất chỉ phản xạ đúng một lần, trên gương sàn điểm 120 tại x52631,6. Không tồn tại đường đi hợp lệ nào chạm được cả nhóm gương 10,50,5,35,8,2 để đạt 110.
1 99 0 0 Không có gương nào, tia đi thẳng từ lỗ này sang lỗ kia và được 0 điểm.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0