#include<iostream> #include<vector> #include<cmath> using namespace std; vector<int> merge(vector<int> v1, vector<int> v2){ vector<int> v; v.push_back(max(v1[0], v2[0])); v.push_back(min(v1[1], v2[1])); return v; } int main(){ int t; int n; int l, r; vector<int> v; vector<int> jump; vector<int> distance; vector<vector<int> > vv; cin>>t; for(int i=0; i<t; i++){ cin>>n; bool flag=true; for(int j=0; j<n; j++){ cin>>l>>r; v.push_back(l); v.push_back(r); vv.push_back(v); v.clear(); } if(n==1) cout<<"YES"<<endl; else{ for(int k=0; k<n; k++){ if(k==0){ distance.push_back(vv[0][1]-0); distance.push_back(vv[1][0]-0); jump.push_back(vv[0][1]-0); jump.push_back(vv[1][0]-0); } else if(k==n-1){ distance.push_back(vv[k][1]-vv[k][0]); distance.push_back(vv[k][1]-vv[k-1][1]); } else{ distance.push_back(vv[k][1]-vv[k][0]); distance.push_back(vv[k+1][0]-vv[k-1][1]); } jump=merge(jump, distance); distance.clear(); if(jump[0]>jump[1]){ flag=false; break; } } if(flag) cout<<"YES"<<endl; else cout<<"NO"<<endl; jump.clear(); } vv.clear(); } return 0; } |
Double click to view unformatted code.