View Code of Problem 6

#include <stdio.h>
int main()
{
	int T, n, i, j, k, a[1000], b[1000], N, m, t, step;
	scanf("%d", &T);
	for (k = 1; k <= T; k++)
	{
		scanf("%d", &n);
		for (j = 0; j < n; j++)
		{
			scanf("%d %d", &a[j], &b[j]);
		}
		for (i = 0; i < n - 1; i++)
		{
			t = i;
			for (j = i; j < n; j++)
				if (a[t]>a[j])t = j;
			if (t != i)
			{
				m = a[i];
				a[i] = a[t];
				a[t] = m;
				m = b[i];
				b[i] = b[t];
				b[t] = m;
			}
		}
		step = b[0] - a[0];
		while (step <= a[1])
		{
			for (i = b[0], j = 0; i <= b[n - 1] && j < n; i += step, j++)
			{
				if ((a[j] < i&&i < b[j]) || (j + 1 < n&&i > a[j + 1]))
				{
					break;
				}
			}
			if (i >= b[n - 1]){
				printf("YES\n"); break;
			}
			else
				step++;
		}
		if (step>a[1])printf("NO\n");
	}
}

Double click to view unformatted code.


Back to problem 6