View Code of Problem 6

#include<stdio.h>
void main()
{
	int T;
	int n;
	int i;
	int left[10000];
	int right[10000];
	int flag = 1;
	scanf("%d", &T);
	while (T--)
	{
		scanf("%d", &n);
		for ( i = 0; i < n; i++)
		{
			scanf("%d %d", &left[i], &right[i]);
		}
		int step = right[0] - left[0];
		for ( i = 1; i < n; i++)
		{
			if (step >0)
			{
				int s = step;
				while ((s + step) <= left[i])
				{
					s += step;
				}
				if (i < n - 1)
				{
					if ((s + step) >= right[i] && (s + step) <= left[i + 1])
					{
						s += step;
					}
					else
					{
						flag = 0;
						break;
					}
				}
				else
				{
					if ((s + step) >= right[i])
					{
						s += step;
					}
					else
					{
						flag = 0;
						break;
					}
				}

			}
			
		}
		if (flag == 1) 
		{
			printf("YES\n");
		}
		else
		{
			printf("NO\n");
		}
		
	}
}

Double click to view unformatted code.


Back to problem 6