Đường Dây Truyền Tin

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1300 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Vào đến sảnh chính, uou tìm thấy một bảng mạch gồm \(n\) điểm nối. Để lấy dữ liệu, Prototype cần nối các điểm này thành một chu trình. Tuy nhiên, các điểm chỉ có thể nối với nhau nếu khoảng cách Manhattan giữa chúng là một số lẻ. Biết rằng khoảng cách Manhattan giữa hai điểm \(A(x_1, y_1)\)\(B(x_2, y_2)\) được tính bằng công thức: \(d(A, B) = |x_1 - x_2| + |y_1 - y_2|\).

Yêu cầu: Kiểm tra xem có thể nối tất cả \(n\) điểm thành một chu trình duy nhất đi qua mỗi điểm đúng một lần hay không.

Input

  • Dòng đầu tiên chứa số nguyên dương \(n\) (\(1 \le n \le 10^5\)) — số lượng điểm nối.
  • \(n\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(x_i, y_i\) (\(|x_i|, |y_i| \le 10^9\)) là tọa độ của điểm thứ \(i\).

Output

  • In ra YES nếu có thể tạo thành một chu trình thỏa mãn yêu cầu.
  • In ra NO nếu không thể.

Example

Test 1

Input
4
0 0
0 1
1 1
1 0
Output
YES
Note
  • (0,0) đến (0,1) có d = 1 (lẻ)
  • (0,1) đến (1,1) có d = 1 (lẻ)
  • (1,0) đến (0,0) có d = 1 (lẻ)
  • Tạo thành chu trình: \((0,0) \to (0,1) \to (1,1) \to (1,0) \to (0,0)\).

Scoring

  • Subtask 1 (30% số điểm): \(n \le 10\).
  • Subtask 2 (30% số điểm): \(n\) là số lẻ.
  • Subtask 3 (40% số điểm): \(n \le 10^5\) và các tọa độ có giá trị tuyệt đối không quá \(10^9\).

Bình luận (12)

Mới nhất
Tải bình luận...