View Code of Problem 6

#include<iostream>
#include<stdio.h>
using namespace std;

/*jlh小时很喜欢玩弹珠,但是他的玩法有些特别。他在一条直线上放一些纸当陷阱,弹珠每次必须跳过一个陷阱(不能多也不能少),并且不掉到陷阱内,
如果弹珠顺利跳过所有陷阱,就算成功了,否则就算失败。我们假设弹珠每次跳相同的距离,现在让你写一个程序帮jlh判断,到底有没有可能成功。

Input:
先输入一个T,表示有T组测试数据。
每次输入一个n(n<=100),表示有n个陷阱,接下来n行,
每行输入区间(l,r),表示陷阱(0<=l<=r<=50000)。

Output:
如果jlh有可能成功,输出YES,否则输出NO。*/

 
int main(){
	int jump;
	int T;
	int n;
	int j;
	int trap[100][2];int flag;
	std::cin>>T;
	while(T--){
		std::cin>>n;
		jump=0; 
		flag=1;
		trap[0][0]=0;
		trap[0][1]=0;
		for(int i=1;i<=n;i++){
			std::cin>>trap[i][0];
			std::cin>>trap[i][1];
			
		}
		for(j=1;j<n;j++){
			if(jump<trap[j][1]-trap[j][0]){
				jump=trap[j][1]-trap[j][0];
			}
			
		}
		for(int i=0;i<n-1;i++){
			if(trap[i][0]+jump>trap[i+1][0]){
				flag=0;
			}
			
		}
		if(flag==0){
			std::cout<<"NO";
		}
		else{
			std::cout<<"YES";
		}
	}
	return 0; 
	
}

Double click to view unformatted code.


Back to problem 6