#J2026M4. [CSP-J 2026 模拟一] 周期闸门(gate)

[CSP-J 2026 模拟一] 周期闸门(gate)

题目描述

有 nn 个站点和 mm 条双向通道。你从站点 11 出发,初始时刻为 00,目标是尽早到达站点 nn。

第 ii 条通道连接 ui,viu_i,v_i,通过它需要 wiw_i 个单位时间。但是通道入口装有周期闸门:只有在出发时刻 tt 满足

t mod pi=rit\bmod p_i=r_i

时,才允许进入这条通道。若当前闸门未开放,你可以在站点原地等待任意整数时间。

闸门在两个方向上的开放规律完全相同。

求最早到达站点 nn 的时刻;如果永远无法到达,输出 -1。

输入格式

第一行两个整数 n,mn,m。

接下来 mm 行,每行五个整数

u v w p r

表示一条通道,其中 0≤r<p0\le r<p。

输出格式

输出最早到达时间,无法到达输出 -1。

样例

4 4
1 2 2 3 0
2 4 2 4 3
1 3 1 2 1
3 4 10 1 0
5

数据范围

  • 2≤n≤1052\le n\le 10^5;
  • 1≤m≤2×1051\le m\le 2\times10^5;
  • 1≤w,p≤1091\le w,p\le 10^9;
  • 0≤r<p0\le r<p。
测试点 分值 特殊限制
1--2 20 n≤20,m≤50n\le20,m\le50
3--5 30 所有 p=1p=1
6--10 50 无额外限制

提示

如果当前到达某个端点的最早时间为 dd,那么等待到该边下一次开放所需时间可以直接由 d mod pd\bmod p 算出。