View Code of Problem 6

#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.


Back to problem 6