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--)
	{
		sum = 0;
	    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