View Code of Problem 6


import java.util.Scanner;

class Trap {
	private int A, B;

	public int getA() {
		return A;
	}

	public void setA(int a) {
		A = a;
	}

	public int getB() {
		return B;
	}

	public void setB(int b) {
		B = b;
	}

}

public class Main {
	static Scanner in = new Scanner(System.in);

	public static boolean judge(Trap[] tra) {
		int max = max(tra);
		for (int i = 0; i < tra.length - 1; i++) {
			if (tra[i].getA() + max > tra[i + 1].getA()) {
				return false;
			}
		}
		return true;
	}

	public static int max(Trap[] tra) {
		int max = tra[0].getB() - tra[0].getA();
		for (int i = 0; i < tra.length; i++) {
			if (max < tra[i].getB() - tra[i].getA()) {
				max = tra[i].getB() - tra[i].getA();
			}
		}
		return max;
	}

	public static void main(String[] args) {
		int T = in.nextInt();
		while (T-- > 0) {
			int N = in.nextInt();
			Trap[] tra = new Trap[N];
			for (int i = 0; i < N; i++) {
				tra[i] = new Trap();
				tra[i].setA(in.nextInt());
				tra[i].setB(in.nextInt());
			}
			if (judge(tra)) {
				System.out.println("YES");
			} else
				System.out.println("NO");
		}
	}
}

Double click to view unformatted code.


Back to problem 6