jlh小时很喜欢玩弹珠,但是他的玩法有些特别。他在一条直线上放一些纸当陷阱,弹珠每次必须跳过一个陷阱(不能多也不能少),并且不掉到陷阱内,如果弹珠顺利跳过所有陷阱,就算成功了,否则就算失败。我们假设弹珠每次跳相同的距离,现在让你写一个程序帮jlh判断,到底有没有可能成功。
#include <iostream>
#include "vector"
using namespace std;
/**
* kkmd66 四刷
* @return
*/
int main() {
int T;
cin >> T;
while (T--) {
int n;
cin >> n;
//存储
vector<vector<int>> vector(n);
for (int i = 0; i < n; ++i) {
int l, r;
cin >> l >> r;
vector[i].push_back(l);
vector[i].push_back(r);
}
//最小步长
int min_step = vector[0][1] - vector[0][0];
for (int i = 0; i < vector.size(); ++i) {
if (vector[i][1] - vector[i][0] > min_step)
min_step = vector[i][1] - vector[i][0];
}
//判断
bool flag = true;
for (int i = 0; i < vector.size() - 1; ++i) {
if (vector[i][0] + min_step > vector[i + 1][0]) {
flag = false;
break;
}
}
//输出
if (flag)
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return 0;
}