JOI 2010 - Sengoku

Xem PDF



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, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1800 (p) Thời gian: 0.75s Bộ nhớ: 64M Input: bàn phím Output: màn hình

Đang giữa thời Chiến Quốc. Để chuẩn bị cho trận chiến sắp tới, vị tướng JOI, người lãnh đạo nước JOI, quyết định bố trí lính canh trên lãnh thổ của mình.

Lãnh thổ nước JOI có dạng hình vuông, với chiều đông–tây và chiều bắc–nam đều bằng \(L\). Lãnh thổ được chia thành các ô vuông kích thước \(1 \times 1\). Mỗi ô được biểu diễn bằng cặp số nguyên \((x, y)\) thỏa mãn \(0 \le x < L\)\(0 \le y < L\). Ô \((0, 0)\) nằm ở góc tây bắc; ô \((x, y)\) nằm cách ô \((0, 0)\) một khoảng \(x\) về phía đông và \(y\) về phía nam.

Mỗi lính canh đứng cố định tại một ô trong lãnh thổ. Lính canh ở ô \((x, y)\) canh gác tất cả các ô \((i, j)\) trong lãnh thổ thỏa mãn:

\[ |x - i| = |y - j|. \]

Phạm vi này không thay đổi theo vị trí của các lính canh khác. Không có hai lính canh nào đứng cùng một ô.

Yêu cầu

Cho vị trí của \(N\) lính canh do tướng JOI bố trí, hãy viết chương trình tính số ô trong lãnh thổ được ít nhất một lính canh canh gác.

Dữ liệu vào

Đọc dữ liệu từ đầu vào chuẩn theo định dạng sau:

  • Dòng đầu tiên chứa hai số nguyên \(L\)\(N\), cách nhau bởi dấu cách.
  • \(N\) dòng tiếp theo mô tả các lính canh, mỗi dòng mô tả một người. Dòng thứ \(i\) trong số này chứa hai số nguyên \(x_i\)\(y_i\), cách nhau bởi dấu cách, cho biết vị trí của lính canh thứ \(i\); \(0 \le x_i < L\)\(0 \le y_i < L\).

Dữ liệu ra

In ra đầu ra chuẩn một dòng chứa một số nguyên: số ô được ít nhất một lính canh canh gác.

Lưu ý: Kết quả có thể vượt quá phạm vi biểu diễn của kiểu số nguyên 32 bit. Cần sử dụng kiểu số nguyên 64 bit, chẳng hạn long long trong C/C++.

Ràng buộc

  • Giới hạn trong kỳ thi gốc: thời gian \(0{,}75\) giây, bộ nhớ \(64\) MB.

  • \(1 \le L \le 100\,000\,000\): độ dài một cạnh của lãnh thổ.

  • \(1 \le N \le 100\,000\): số lính canh.
  • \(0 \le x_i < L\)\(0 \le y_i < L\) với mọi \(1 \le i \le N\).
  • Không có hai lính canh nào đứng cùng một ô.

Phân nhóm

Bài này có tổng cộng \(100\) điểm, gồm \(16\) bộ dữ liệu, mỗi bộ \(5\) điểm, và \(2\) bộ dữ liệu, mỗi bộ \(10\) điểm.

  • Các bộ kiểm thử có tổng cộng \(15\) điểm thỏa mãn \(L \le 1\,000\)\(N \le 1\,000\).
  • Các bộ kiểm thử có tổng cộng \(40\) điểm thỏa mãn \(N \le 1\,000\).

Ví dụ

Ví dụ 1

Input
5 4
4 1
1 1
1 0
3 3
Output
18
Giải thích

Lãnh thổ nước JOI trong ví dụ này được minh họa trong hình dưới đây. Có \(18\) ô được canh gác. Các chấm tròn màu đen biểu thị lính canh; các ô được tô màu xám là những ô được canh gác.

Bình luận

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

Không có bình luận nào.

Kỳ thi: