#include <stdio.h> #include <math.h> #include <stdlib.h> int if_can(int n) { int l,r,gap,flag=1,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); if(l>=r) return 0; 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]) { gap++; i=-1; place=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.