#include<stdio.h> int T,n,trapleft[50000],trapright[50000],i,j,k; int maxlen() { int max=trapright[0]; for(k=1;k<n;k++) if(max<trapright[k]) max=trapright[k]; return max; } void judge() { int dis,location,l,flag; location=0; l=0; flag=1; for(dis=1;dis<=maxlen();dis++) { while(location<maxlen()) { location+=dis; if(location>=trapright[l]&&location>=trapleft[l+1]) l++; else if(location>=trapright[l+2]) {flag=0;break;} else if(location<=trapright[l]&&location>=trapleft[l]) {flag=0;break;} else if(location<=trapright[l+1]&&location>=trapleft[l+1]) {flag=0;break;} } } if(flag==1) printf("YES\n");else printf("NO\n"); } int main() { scanf("%d",&T); for(i=0;i<T;i++) { scanf("%d",&n); for(j=0;j<n;j++) { scanf("%d%d",&trapleft[j],&trapright[j]); } judge(); } return 0; } |
Double click to view unformatted code.