设 的为大点,
的为小点。由于总步数
且每个人的步数是与时间正相关的,考虑按步数
从大到小枚举,设
在
时刻走到步数
,
是冠军当且仅当
相邻的点在之前没有更新过步数或者更新的时刻大于
,设
表示
最近一次更新步数的时刻,
表示
上一次更新步数的时刻,初值均为最终时刻
。
故 保持步数为
且为冠军的持续时间为
,若
为小点则
可以暴力计算,若
为大点,考虑直接维护这个结果(记为
),即每个点步数更新时,枚举其周围所有大点
来更新
。由于大点数量
,故总复杂度为
,取
即可。时间复杂度