Cổng dịch chuyển của kiến (Telepanting)
Đề bài
Mô tả
Một con kiến di chuyển trên trục số thực với vận tốc không đổi đơn vị/giây. Nó bắt đầu tại vị trí và luôn đi sang phải (mỗi giây vị trí tăng thêm ).
Trên trục số có cổng dịch chuyển. Cổng thứ đặt tại vị trí và dịch chuyển tới vị trí với . Mỗi cổng có trạng thái bật hoặc tắt. Trạng thái ban đầu của cổng thứ được mô tả bởi : nếu thì cổng tắt, nếu thì cổng bật.
Khi con kiến đi qua một cổng (tức là vị trí của nó trùng với vị trí của cổng):
- Nếu cổng đang tắt, nó chuyển sang trạng thái bật (con kiến tiếp tục di chuyển bình thường, không bị ảnh hưởng).
- Nếu cổng đang bật, nó chuyển sang trạng thái tắt và con kiến ngay lập tức bị dịch chuyển tới vị trí , sau đó tiếp tục di chuyển bình thường về bên phải.
Hỏi tính từ thời điểm bắt đầu di chuyển, sau bao lâu con kiến đến được vị trí ? Có thể chứng minh điều này luôn xảy ra trong thời gian hữu hạn. Vì đáp số có thể rất lớn, hãy in ra giá trị này theo modulo .
Dữ liệu vào
- Dòng đầu chứa số nguyên — số cổng.
- dòng tiếp theo, dòng thứ chứa ba số nguyên , , — vị trí cổng, vị trí cổng dịch chuyển tới, và trạng thái ban đầu của cổng thứ .
Dữ liệu ra
In ra một số nguyên duy nhất là thời gian (đơn vị giây) con kiến cần để đến được vị trí , lấy modulo .
Ràng buộc
- (các vị trí cổng đôi một khác nhau và sắp xếp tăng dần).
- giá trị đôi một khác nhau.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 3 2 0 6 5 1 7 4 0 8 1 1 |
23 | Hành trình của kiến: . Tổng thời gian: . |
| 1 454971987 406874902 1 |
503069073 | Kiến đi tới cổng tại , bị dịch chuyển về , rồi đi tiếp tới . Tổng thời gian . |
| 5 243385510 42245605 0 644426565 574769163 0 708622105 208990040 0 786625660 616437691 0 899754846 382774619 0 |
899754847 | Tất cả cổng đều tắt nên kiến đi thẳng từ tới . |
Bình luận