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

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 1 đơn vị/giây. Nó bắt đầu tại vị trí 0 và luôn đi sang phải (mỗi giây vị trí tăng thêm 1).

Trên trục số có n cổng dịch chuyển. Cổng thứ i đặt tại vị trí xi và dịch chuyển tới vị trí yi với yi<xi. 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ứ i được mô tả bởi si: nếu si=0 thì cổng tắt, nếu si=1 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í yi, 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í xn+1? 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 998244353.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số cổng.
  • n dòng tiếp theo, dòng thứ i chứa ba số nguyên xi, yi, si — 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ứ i.

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í xn+1, lấy modulo 998244353.

Ràng buộc

  • 1n2·105
  • 1yi<xi109
  • si{0,1}
  • x1<x2<<xn (các vị trí cổng đôi một khác nhau và sắp xếp tăng dần).
  • 2n giá trị x1,x2,,xn,y1,y2,,yn đô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: 06581326574659. Tổng thời gian: 6+3+2+4+2+2+4=23.
1
454971987 406874902 1
503069073 Kiến đi tới cổng tại 454971987, bị dịch chuyển về 406874902, rồi đi tiếp tới 454971988. Tổng thời gian 454971987+48097086=503069073.
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ừ 0 tới xn+1=899754847.

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