F. 传感器重复触发过滤

    传统题 1000ms 256MiB

传感器重复触发过滤

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目背景

智能车驶过终点线时,光电传感器可能在短时间内连续触发。为了避免一次通过被重复记录,计时程序需要识别真正的触发边沿,并设置最短记录间隔。

题目描述

传感器每次采样得到一个电平:0 表示未检测到终点线,1 表示检测到终点线。系统还记录了每次采样的时间,单位为毫秒。

传感器在第一条采样记录之前的电平视为 0。只有电平从 0 变为 1 的采样才是候选触发;电平持续为 1 时不会产生新的候选触发。

第一个候选触发总是被接受。此后,若当前候选触发时间与上一次被接受的触发时间之差大于或等于 d,就接受它;否则忽略它。被忽略的候选触发不改变上一次被接受的时间,但仍按实际采样电平继续判断后续边沿。

请按时间顺序输出所有被接受的触发时间,并计算它与前一次被接受触发的时间间隔。第一次被接受触发的间隔记为 0。

输入格式

第一行包含两个整数 n、d,分别表示采样记录数和最短记录间隔。

接下来 n 行,每行包含两个整数 t、x,表示采样时间和传感器电平。采样时间严格递增,x 为 0 或 1。

输出格式

第一行输出被接受的触发次数 m。

接下来 m 行,每行输出两个整数 time interval,分别表示触发时间和与前一次被接受触发的间隔。若 m 为 0,只输出一行 0。

样例

12 5
0 1
1 1
2 0
3 1
4 0
5 1
6 1
7 0
8 1
9 1
10 0
12 1
3
0 0
5 5
12 7

样例解释

时间 3 和 8 的候选触发距离上一次被接受的触发都不足 5 毫秒,因此被忽略。时间 1 和 6 的电平虽然为 1,但没有发生从 0 到 1 的变化。

数据范围

1 ≤ n ≤ 100000,0 ≤ d ≤ 1000000000,0 ≤ t ≤ 1000000000。所有采样时间严格递增。

时间限制:1 秒;内存限制:256 MiB。

ASC2026考核C语言训练题二(AC这10道提前知道51考核任务)

未参加
状态
已结束
规则
ACM/ICPC
题目
10
开始于
2026-10-1 0:00
结束于
2026-10-6 0:00
持续时间
120 小时
主持人
参赛人数
121