JOI 2013 - JOI Poster

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: 1000 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Chủ tịch K đang thiết kế ba tấm áp phích để cổ vũ đội tuyển Nhật Bản tham dự Olympic Tin học Quốc tế. Mỗi tấm mang một trong ba chữ J, O, I. Sau khi hoàn thành hai tấm mang chữ JI, ông quyết định thiết kế chữ O trên nền bầu trời sao của Australia.

Tấm áp phích là một hình chữ nhật có chiều rộng \(W\), chiều cao \(H\), góc dưới bên trái tại \((0,0)\) và góc trên bên phải tại \((W,H)\). Trên đó có \(N\) ngôi sao. Ngôi sao \(S_i\) nằm tại \((X_i,Y_i)\); không có hai ngôi sao trùng tọa độ.

Ông chọn bốn ngôi sao khác nhau và lần lượt gán vai trò \(A,B,C,D\). Gọi \(O_1\) là đường tròn tâm \(A\) đi qua \(B\), và \(O_2\) là đường tròn tâm \(C\) đi qua \(D\). Bộ bốn ngôi sao này là một phương án thiết kế hợp lệ nếu thỏa mãn đồng thời:

  • \(O_1\) chứa hoàn toàn \(O_2\) ở bên trong: mọi điểm nằm trong hoặc trên \(O_2\) đều phải nằm trong \(O_1\), không được nằm trên \(O_1\).
  • Cả hai hình tròn đều không vượt ra ngoài áp phích: với mọi điểm \((X,Y)\) nằm trong hoặc trên mỗi đường tròn, phải có \(0\le X\le W\)\(0\le Y\le H\).

Các vai trò \(A,B,C,D\) được phân biệt khi đếm các cách chọn.

Yêu cầu

Cho kích thước áp phích và tọa độ các ngôi sao, hãy đếm số cách chọn bốn ngôi sao \(A,B,C,D\) tạo thành một phương án thiết kế hợp lệ.

Dữ liệu vào

Đọc từ đầu vào chuẩn:

  • Dòng đầu tiên chứa ba số nguyên \(N,W,H\), lần lượt là số ngôi sao, chiều rộng và chiều cao của áp phích.
  • Trong \(N\) dòng tiếp theo, dòng thứ \(i\) chứa hai số nguyên \(X_i,Y_i\), là tọa độ ngôi sao \(S_i\).

Dữ liệu ra

Ghi ra đầu ra chuẩn một dòng chứa một số nguyên là số phương án thiết kế hợp lệ.

Ràng buộc

  • Giới hạn thời gian: 1 giây.
  • Giới hạn bộ nhớ: 256 MB.
  • \(4\le N\le50\).
  • \(1\le W,H\le1000\).
  • \(0\le X_i\le W\)\(0\le Y_i\le H\).
  • Không có hai ngôi sao trùng tọa độ.

Phân nhóm

Mỗi nhóm gồm một hoặc nhiều bộ dữ liệu. Chỉ nhận được điểm của một nhóm khi chương trình trả lời đúng tất cả bộ dữ liệu trong nhóm.

  • Nhóm 1 (80 điểm): Với mọi cách chọn bốn ngôi sao khác nhau \(A,B,C,D\), hai đường tròn \(O_1,O_2\) không tiếp xúc nhau.
  • Nhóm 2 (20 điểm): Không có ràng buộc bổ sung.

Ví dụ 1

Input
7 20 15
9 5
13 9
15 13
7 4
6 8
14 7
16 7
Output
3

Có đúng ba bộ \((A,B,C,D)\) hợp lệ: \((S_2,S_1,S_6,S_7)\), \((S_2,S_1,S_7,S_6)\)\((S_2,S_3,S_6,S_7)\). Trong phương án cuối, hai đường tròn \(O_1\)\(O_2\) cũng không tiếp xúc nhau: bán kính ngoài là \(\sqrt{20}\), còn khoảng cách giữa hai tâm cộng bán kính trong là \(\sqrt{5}+2<\sqrt{20}\).

Ví dụ 2

Input
15 20 30
11 8
14 25
3 20
1 27
2 16
12 8
0 4
3 10
12 11
5 9
16 3
2 13
4 24
18 3
12 28
Output
12

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: