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

代码