View Code of Problem 6

#include<stdio.h>
int main()
{
	int c[50000] = {1},l[100],r[100];
	int t,n,sum;
	long i,j;
	scanf("%d",&t);
	while(t--)
	{
	    scanf("%d",&n);
	    for (i = 0;i < n;i++)
	    {
	    	scanf("%ld %ld",&l[i],&r[i]);
	    	for (j = l[i]+1;j < r[i];j++)
	    	{
	    		c[j] = 0;
			}
		}
		if (n == 1) printf("YES\n");
		else
		{
			for (i = 1;i <50000;i++)
			{
				for (j = 0;j < n-1;j++)
				{
					if (sum == 0)
					{
						if (i >= r[0] && i <= l[1])
						{
							sum++;
							i+=i;
						}
						else break;
					}
					else
					{
						if (i >= r[j] && i <= l[j+1])
						{
							sum++;
							i+=i;
						}
						else break;
					}
				}
				if (j == n-1)
				{
					if (i >= r[j])
					{
						sum++;
						i+=i;
					}
					else break;
				}
				if (sum != n) sum = 0;
				else break;
			}
			if (sum == n) printf("YES\n");
			else printf("NO\n");
			for (i = 0;i <= r[n-1];i++)
			{
				if (c[i] == 0) c[i] = 1;
			}
		}
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 6