Codeforces Global Round 15 |
---|
Закончено |
Муравей движется по действительной прямой с постоянной скоростью в $$$1$$$ единицу в секунду. Он начинает движение в точке $$$0$$$ и всегда движется вправо (поэтому его позиция увеличивается на $$$1$$$ каждую секунду).
Существует $$$n$$$ порталов, $$$i$$$-й из которых находится в позиции $$$x_i$$$ и телепортирует в позицию $$$y_i < x_i$$$. Каждый портал может быть либо активным, либо неактивным. Начальное состояние $$$i$$$-го портала определяется $$$s_i$$$: если $$$s_i=0$$$, то $$$i$$$-й портал изначально неактивен, если $$$s_i=1$$$, то $$$i$$$-й портал изначально активен. Когда муравей проходит через портал (т.е., когда его положение совпадает с положением портала):
Сколько времени (с момента начала движения) потребуется муравью, чтобы достичь позиции $$$x_n + 1$$$? Можно показать, что это произойдет за конечное время. Поскольку ответ может быть очень большим, вычислите его по модулю $$$998\,244\,353$$$.
Первая строка содержит целое число $$$n$$$ ($$$1\le n\le 2\cdot 10^5$$$) — количество порталов.
В $$$i$$$-й из следующих $$$n$$$ строк содержится три целых числа $$$x_i$$$, $$$y_i$$$ и $$$s_i$$$ ($$$1\le y_i < x_i\le 10^9$$$, $$$s_i\in\{0,1\}$$$) — положение $$$i$$$-го портала, положение, куда телепортируется муравей, когда он проходит через $$$i$$$-й портал (если он активен), и начальное состояние $$$i$$$-го портала.
Позиции порталов строго возрастают, то есть $$$x_1<x_2<\cdots<x_n$$$. Гарантируется, что $$$2n$$$ целых чисел $$$x_1, \, x_2, \, \dots, \, x_n, \, y_1, \, y_2, \, \dots, \, y_n$$$ попарно различны.
Выведите количество времени в секундах, которое пройдет с момента начала движения муравья до момента достижения им позиции $$$x_n+1$$$. Поскольку ответ может быть очень большим, выведите его по модулю $$$998\,244\,353$$$.
4 3 2 0 6 5 1 7 4 0 8 1 1
23
1 454971987 406874902 1
503069073
5 243385510 42245605 0 644426565 574769163 0 708622105 208990040 0 786625660 616437691 0 899754846 382774619 0
899754847
5 200000000 100000000 1 600000000 400000000 0 800000000 300000000 0 900000000 700000000 1 1000000000 500000000 0
3511295
Объяснение первого примера: Муравей перемещается следующим образом (кривая стрелка обозначает телепортацию, прямая стрелка обозначает обычное движение со скоростью $$$1$$$, а время, затраченное на движение, написано над стрелкой). $$$$$$ 0 \stackrel{6}{\longrightarrow} 6 \leadsto 5 \stackrel{3}{\longrightarrow} 8 \leadsto 1 \stackrel{2}{\longrightarrow} 3 \leadsto 2 \stackrel{4}{\longrightarrow} 6 \leadsto 5 \stackrel{2}{\longrightarrow} 7 \leadsto 4 \stackrel{2}{\longrightarrow} 6 \leadsto 5 \stackrel{4}{\longrightarrow} 9 $$$$$$ Обратите внимание, что общее время составляет $$$6+3+2+4+2+2+4=23$$$.
Пояснение второго примера: Муравей перемещается следующим образом (кривая стрелка обозначает телепортацию, прямая стрелка обозначает обычное движение со скоростью $$$1$$$, а время, затраченное на движение, написано над стрелкой). $$$$$$ 0 \stackrel{454971987}{\longrightarrow} 454971987 \leadsto 406874902 \stackrel{48097086}{\longrightarrow} 454971988 $$$$$$ Обратите внимание, что общее время составляет $$$454971987+48097086=503069073$$$.
Объяснение третьего примера: Поскольку все порталы изначально неактивны, муравей не будет телепортирован и попадет прямо из $$$0$$$ в $$$x_n+1=899754846+1=899754847$$$.
Название |
---|