#include<iostream> using namespace std; int main() { int t,n,l,r; cin>>t; while(t--) { int step=0,des=0,flag=1; cin>>n; if(n==1) { cout<<"YES"<<endl; } else { int ltrap[100]={0},rtrap[100]={0}; for(int i=0;i<n;i++) { cin>>ltrap[i]>>rtrap[i]; } step=rtrap[0]; //此处n至少>=2,输入两个陷阱判断step范围 int maxstep=ltrap[1]; while(step<=maxstep) { flag=0; des=0; for(int i=0;i<n;i++) { des+=step; if((des<rtrap[i]&&des>ltrap[i])||(des>ltrap[i+1]&&i+1<n)) //跳在陷阱中间或者跳过了至少两个陷阱 { flag=0; break; } else { flag=1; } } if(flag) { cout<<"YES"<<endl; break; } step++; } if(!flag) { cout<<"NO"<<endl; } } } } |
Double click to view unformatted code.