Lấy lưới 2 chiều và vẽ một số đoạn thẳng trên nó để thể hiện các gương. Bây giờ chọn một điểm để đặt một tia laser lý thuyết và một góc để xác định hướng nó đang chỉ. Câu hỏi là: nếu bạn đi theo đường đi của tia laser trong một khoảng cách xác định, bạn đang ở điểm tọa độ nào?
Thí dụ:
Trong hình ảnh này, L
là vị trí của laser, t
là nó của góc (đo từ trục X dương), M1
, M2
, và M3
đều là những gương đoạn thẳng, và E
là điểm trên con đường tia laser sau khi D = d1 + d2 + d3 + d4
đơn vị, bắt đầu từ L
.
Mục tiêu
Viết chương trình ngắn nhất (tính theo byte) mà kết quả đầu ra E
được L
, t
, D
, và một danh sách các gương.
(Sử dụng http://otherseff.in/byte-count để đếm byte.)
Định dạng đầu vào
Đầu vào sẽ đến từ stdin ở định dạng:
Lx Ly t D M1x1 M1y1 M1x2 M1y2 M2x1 M2y1 M2x2 M2y2 ...
- Tất cả các giá trị sẽ là các điểm nổi phù hợp với biểu thức chính quy này :
[-+]?[0-9]*\.?[0-9]+
. - Luôn có chính xác một khoảng trống giữa mỗi số.
- Yêu cầu báo giá xung quanh đầu vào được cho phép.
t
là độ, nhưng không nhất thiết phải trong[0, 360)
phạm vi. (Nếu bạn thích bạn có thể sử dụng radian thay vào đó, chỉ cần nói như vậy trong câu trả lời của bạn.)D
có thể âm tính, hiệu quả xoay laser 180 độ.D
cũng có thể là 0.- Có thể có nhiều gương tùy ý (bao gồm cả không có gương).
- Thứ tự của các gương không quan trọng.
- Bạn có thể giả sử đầu vào sẽ có bội số của 4 số. ví dụ
Lx Ly t
hoặcLx Ly t D M1x1
không hợp lệ và sẽ không được kiểm tra. Không có đầu vào nào là không hợp lệ.
Bố cục trên có thể là đầu vào như:
1 1 430 17 4.8 6.3 6.2 5.3 1.5 4.8 3.5 6 6.3 1.8 7.1 3
(Lưu ý rằng hình ảnh được vẽ tự do và các giá trị này chỉ là xấp xỉ. Giá trị đầu vào của Martin Büttner là
1 1 430 17 4.8 5.3 6.2 4.3 1.5 4.8 3.5 6 6.3 1.8 7.1 3
sẽ cho nhiều va chạm hơn mặc dù chúng không khớp với bản phác thảo.)
Định dạng đầu ra
Đầu ra nên đi đến thiết bị xuất chuẩn ở định dạng:
Ex Ey
Đây cũng là những chiếc phao và có thể ở dạng hàm mũ.
Ghi chú
- Gương có thể giao nhau.
- Cả hai mặt của gương đều được phản chiếu.
- Chùm tia có thể chiếu vào cùng một gương nhiều lần.
- Chùm sáng cứ kéo dài mãi.
Các trường hợp không xác định
Bạn có thể cho rằng các trường hợp
- Laser bắt đầu trên một phân khúc dòng gương
- chùm tia laser chiếu vào điểm cuối của gương
- chùm tia laser chạm vào giao điểm giữa hai gương
không xác định và sẽ không được kiểm tra. Chương trình của bạn có thể làm bất cứ điều gì nếu những điều này xảy ra, bao gồm cả lỗi.
Tiền thưởng
Để giải trí, tôi sẽ trao 200 điểm thưởng cho bài nộp được bình chọn cao nhất đưa ra biểu diễn đồ họa của vấn đề (thậm chí bạn có thể viết một kịch bản tương tác). Những phần thưởng này không cần phải được đánh gôn và có thể được khoan dung với cách xử lý đầu vào và đầu ra. Chúng khác với các bài nộp golf thực tế nhưng cả hai nên được gửi trong cùng một câu trả lời .
Lưu ý: Chỉ gửi câu trả lời thưởng là tốt, bạn sẽ không được trả lời. Để được chấp nhận, bạn phải tuân thủ chính xác thông số đầu vào / đầu ra (ví dụ: đầu ra chỉ liên quan Ex Ey
, không liên quan đến hình ảnh) và là ngắn nhất.