#include <stdio.h> #include <math.h> #include <stdlib.h> int if_can(int n) { int l,r,gap,flag,i,place=0,*j,*k; gap = 1; j=(int *)malloc(sizeof(int)*n); k=(int *)malloc(sizeof(int)*n); for(i=0;i<n;i++) { scanf("%d%d",&l,&r); j[i]=l; k[i]=r; } for(i=0;i<n;i++) { if(place<=j[i]) place+=gap; else return 0; if(place >=k[i]) flag=1; else { gap++; i=0; continue; } } return flag; } int main() { int *a; int t,i,j,n; scanf("%d",&t); a=(int *)malloc(sizeof(int)*t); for(i=0;i<t;i++) { scanf("%d",&n); a[i]=if_can(n); } for(j=0;j<t;j++) { if(a[j]==1) printf("YES\n"); else printf("No\n"); } return 0; } |
Double click to view unformatted code.