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

Quang Học (Gold)

Đề bài

Mô tả

Một tia laser đặt tại vị trí (0,0) chiếu theo hướng bắc (chiều dương trục y). Chuồng bò nằm tại vị trí (Bx,By). Trên nông trại có N tấm gương nghiêng 45°, mỗi tấm có hướng \ hoặc /, đặt tại các vị trí có tọa độ nguyên. Khi tia sáng gặp gương, nó bị phản xạ theo quy tắc thông thường:

  • Gương /: tia đi lên thành đi phải, tia đi phải thành đi lên, tia đi xuống thành đi trái, tia đi trái thành đi xuống.
  • Gương \: tia đi lên thành đi trái, tia đi trái thành đi lên, tia đi xuống thành đi phải, tia đi phải thành đi xuống.

Hãy đếm số vị trí có thể đặt thêm một tấm gương (với hướng tùy chọn \ hoặc /) sao cho tia laser từ (0,0) có thể đến được chuồng bò tại (Bx,By).

Lưu ý: không được đặt gương tại vị trí đã có gương, và tia laser sau khi xuất phát không được quay lại (0,0).

Dữ liệu vào

Dòng đầu chứa ba số nguyên N, Bx, By.

  • N dòng tiếp theo, mỗi dòng chứa hai số nguyên xi, yi và một ký tự (\ hoặc /) — vị trí và hướng của tấm gương thứ i.

Dữ liệu ra

Một số nguyên duy nhất — số vị trí có thể đặt gương mới.

Ràng buộc

  • 1N100000
  • 109xi,yi,Bx,By109
  • Không có hai gương cùng vị trí
  • (Bx,By)(0,0)

Ví dụ

Input Output Giải thích
4 1 2
-2 1 <br>2 1 /
2 2 <br>-2 2 /
2 Đặt gương tại (0,1) hoặc (0,2) đều dẫn tia laser đến chuồng.
10 -2 0
0 2 /
2 2 <br>-2 1 /
1 1 <br>1 -1 <br>3 -1 /
3 1 <br>1 3 <br>-2 3 /
-4 1 /
4 Có 4 vị trí hợp lệ để đặt gương.

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