小明要赶火车,他在t时刻来到车站。 车站有n辆火车,每辆火车有一个 到站时间A[i] 和每一班车的时间间隔B[i],(就是说 A[i], A[i]+B[i] ,A[i]+B[i]+B[i],A[i]+… 时刻这辆火车会出现在车站) 小明到车站后开始等车,他会坐上第一辆来的车,如果同一时刻有很多车来,那他可以随便选一个。 请帮他计算他会坐上哪辆车。很多车同一时刻来的话,你可以随便输出一个。
输入 第一行两个整数 n 和 t (1<=n<=100, 1<=t<=10^5) 接下来n行,每行两个整数 A[i]和B[i] 如上所述 (1<=A[i],B[i]<=10^5)
输出 输出坐上的车的编号
样例 样例1: 输入 2 2 6 4 9 5
输出 1
样例2: 输入 5 5 3 3 2 5 5 6 4 9 6 1
输出 3
样例3: 输入 3 7 2 2 2 3 2 4
输出 1
Note 第一个样例中,第一辆车的第一班6点来了,第二辆车的第一班9点来了,所以答案是1,第一辆车。
#include <cstdio>
unsigned long long a, b, min = 1e9 + 7, m, mim = 1, n, t;
int main()
{
scanf("%llu %llu", &n, &t);
for (unsigned long long i = 1; i <= n; i++)
{
scanf("%llu %llu", &a, &b);
if (a >= t)
{
m = a - t;
}
else
{
m = b - ((t - a) % b);
}
if (m <= min)
{
min = m;
mim = i;
}
}
printf("%llu\n", mim);
return 0;
}