← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func abs(a int64) int64 {
	if a < 0 {
		return -a
	}
	return a
}

func max(a, b int64) int64 {
	if a > b {
		return a
	}
	return b
}

func main() {
	reader := bufio.NewReader(os.Stdin)
	var n int
	if _, err := fmt.Fscan(reader, &n); err != nil {
		return
	}

	t := make([]int64, n+2)
	x := make([]int64, n+2)

	t[0] = 0
	x[0] = 0
	for i := 1; i <= n; i++ {
		fmt.Fscan(reader, &t[i], &x[i])
	}
	const INF int64 = 2e18
	t[n+1] = INF
	x[n+1] = 0

	can_seq := make([]bool, n+2)
	for k := 1; k < n; k++ {
		can_seq[k] = (t[k]+abs(x[k]-x[k+1]) <= t[k+1])
	}

	pos := make([]bool, n+2)
	dp := make([]int64, n+2)
	for i := 0; i <= n+1; i++ {
		dp[i] = INF
	}
	pos[0] = true

	ans := false

	for i := 0; i < n; i++ {
		if pos[i] {
			if t[i]+abs(x[i]-x[i+1]) <= t[i+1] {
				if i+1 == n {
					ans = true
				} else {
					pos[i+1] = true
					val := t[i] + abs(x[i]-x[i+1]) + abs(x[i+1]-x[i+2])
					if val < dp[i+1] {
						dp[i+1] = val
					}
				}
			}

			isValid := true
			for j := i + 2; j <= n; j++ {
				if j-2 >= i+1 {
					if !can_seq[j-2] {
						isValid = false
					}
				}
				if !isValid {
					break
				}

				T := t[i] + abs(x[i]-x[j]) + abs(x[j]-x[i+1])
				if T <= t[i+1] {
					if j == n {
						ans = true
					} else {
						val := t[j-1] + abs(x[j-1]-x[j+1])
						if val < dp[j] {
							dp[j] = val
						}
					}
				}
			}
		}

		if dp[i] != INF {
			if dp[i] <= t[i+1] {
				if i+1 == n {
					ans = true
				} else {
					pos[i+1] = true
					val := max(t[i], dp[i]) + abs(x[i+1]-x[i+2])
					if val < dp[i+1] {
						dp[i+1] = val
					}
				}
			}

			isValid := true
			for j := i + 2; j <= n; j++ {
				if j-2 >= i+1 {
					if !can_seq[j-2] {
						isValid = false
					}
				}
				if !isValid {
					break
				}

				T := max(t[i], dp[i]+abs(x[i+1]-x[j])) + abs(x[j]-x[i+1])
				if T <= t[i+1] {
					if j == n {
						ans = true
					} else {
						val := t[j-1] + abs(x[j-1]-x[j+1])
						if val < dp[j] {
							dp[j] = val
						}
					}
				}
			}
		}
	}

	if ans {
		fmt.Println("YES")
	} else {
		fmt.Println("NO")
	}
}