View Code of Problem 6

#include <stdio.h>
int Whichismax(int v[], int n)
{
	int i, max;
	max = 0;
	for (i = 0; i<n; i++)
	{
		if (v[i]>v[max])
			max = i;
	}
	return v[max];
}
int main()
{
	int i, i_temp, mid, t, l, r, n, a[50000], b[50000], v[50000], temp;
	scanf("%d", &t);
 
	while (t--)
	{
		scanf("%d", &n);
		for (i = 0; i < n; i++) {
			scanf("%d%d", &l, &r);
			a[i] = l;
			b[i] = r;
			v[i] = r - l;
		}	
		mid = Whichismax(v, n);
		temp = 0;
		for (i = 0; i < n; i++) {
			if (a[i]%mid + (b[i]-a[i]) <= mid && i < n-1 && b[i+1] - a[i] > mid) {
				temp++;
			}
			else {
				printf("NO");
                          	break;
                        }
		}
		if (temp == n) {
			printf("YES");
		}
		printf("\n");
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 6