View Code of Problem 6

#include<stdio.h>
#define SIZE 100
#define Y "YES\n"
#define N "NO\n"
int main() {
	//freopen("C:/Users/s/source/repos/ConsoleApplication1/Debug/input.txt", "r", stdin);
	int t, n;
	int l[SIZE + 1];
	int r[SIZE];
	scanf("%d", &t);
	while (t-- > 0) {
		scanf("%d", &n);
		for (int i = 0; i < n; i++) {
			scanf("%d %d", l + i, r + i);
		}
		l[n] = r[n - 1];
		if (n == 1) {
			printf(Y);
			continue;
		}
		int step = r[0] - l[0];
		int mid = (l[0] + r[1]) / 2;
		int max_step = mid;
		if (mid < r[0] || mid > l[1])max_step = l[1];
		int pos = 0;
		bool flag = true;
		while (step <= max_step) {
			flag = true;
			for (int i = 0; i < n; i++) {
				pos += step;
				if (pos < r[i] || pos > l[i+1]) {
					flag = false;
					break;
				}
			}
			if (flag)break;
			step++;
		}
		printf(flag ? Y : N);
	}

	return 0;
}

Double click to view unformatted code.


Back to problem 6