问题 G: 安全出行
时间: 1 Sec 内存: 128 MB
题目描述
有 N 辆汽车在无限长的单行道上行驶,且行驶方向为坐标值增大的方向。每辆车在跑道上开始行驶的位置互不相同,一些车辆的行驶速度可能相同,也可能不同。由于跑道是单行道,十分狭窄,汽车们无法相互超越。当一辆速度很快的汽车追上另一辆汽车时,他必须减速至与另一辆车速度相同以免发生碰撞,并成为同一车队的一员。此时,两辆车可以视为在同一点上。最终,再也没有汽车会撞到(追上)其他汽车了。
求在这种情况下,会剩下多少个车队。
输入
第一行包含整数N。
接下来N行,每行包含一辆车的初始位置和行驶速度。
所有车辆的初始位置各不相同,且是按照递增顺序给出的。
1<= N <= 1e5
初始位置范围[0 , 1e9]
行驶速度范围[0 , 1e9]
输出
输出一个整数,表示最终剩下的车队数量。
样例输入 Copy
5
0 1
1 2
2 3
3 2
6 1
样例输出 Copy
2
/*
Dreams never shine!
It's you that shine while chasing your dreams :)
JAYO!!
*/
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 100000 + 1;
typedef long long LL;
int main() {
int N;
cin >> N;
static int arr[maxn];
int tmp, v, maxVel, cnt = 0;
for(int i = 0; i < N; i++) {
cin >> tmp >> v;
arr[i] = v;
}
maxVel = arr[N - 1];
for(int i = N - 1; i >= 0; i--) {
if(arr[i] <= maxVel) {
cnt++;
maxVel = arr[i];
}
}
cout << cnt << endl;
return 0;
}
考虑不周啊,提交了几次都是错的,最后终于AC!
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuoyibo.net 版权所有 湘ICP备2023021910号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务