#include "stdio.h" void main() { int l[50000],r[50000]; int i,j; int n,t; int count; int max,sum; scanf("%d",&t); for(i=0;i<t;i++) { scanf("%d",&n); for(j=0;j<n;j++) { scanf("%d%d",&l[j],&r[j]); } max=r[0]-l[0]; for(j=0;j<n;j++) //每次跳的距离就是区间最大差 { if(max<r[j]-l[j]) max=r[j]-l[j]; } sum=l[0]; //第一格位置开跳 count=0; for(j=1;j<n;j++) { sum=sum+max; if(sum>l[j]) //==才能恰好吻合 { count++; break; } } if(count==0) printf("YES\n"); else printf("NO\n"); } } |
Double click to view unformatted code.