View Code of Problem 6

#include<stdio.h>
int main()
{
	int t,n,i,j,l[50001],r[50001],sp,qi,shi,k;
	scanf("%d",&t);
	for(i=0;i<t;i++)
	{
		scanf("%d",&n);//陷阱
		for(j=0;j<n;j++)
		{
			scanf("%d",&l[j]);
			scanf("%d",&r[j]);
		}
		for(sp=1;sp<50000;sp++)
		{
			qi=0;
			shi=qi+sp;
			k=0;//0号陷阱
			//m=0;
			while(k<n)
			{
				if(shi<=l[k])
				{
					qi=shi;
					shi=shi+sp;
				}
				else if(shi<r[k])
				{
					//printf("%d不行1\n",sp);
					break;
				}
				else if(shi<=l[k+1])
				{
					k++;
					qi=shi;
					shi=shi+sp;
				}
				else
				{
					//printf("%dNO\n",sp);
					printf("NO\n");
					sp=50005;
					break;
				}
				if(k==n-1&&shi>=r[k])
				{
					//printf("k=%dYES\n",k);
					printf("YES\n");
					break;
				}
				if(k==n-1&&shi<r[k])
				{
					//printf("k=%dYES\n",k);
					printf("NO\n");
					break;
				}
				
					
			}
			if(k==n-1||sp==50005)
			{
				break;
			}
			
		}
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 6