trang chủ / bài tập / divpoints

Chia điểm

Đề bài

Mô tả

Cho một tập hợp gồm n2 điểm phân biệt đôi một, mỗi điểm có tọa độ nguyên trên mặt phẳng.

Bạn cần chia n điểm này thành hai nhóm AB, cả hai đều khác rỗng, sao cho điều kiện sau được thỏa mãn:

Với mỗi cặp điểm PQ, ta ghi lên bảng khoảng cách Euclid giữa chúng: bằng bút vàng nếu hai điểm thuộc cùng một nhóm, và bằng bút xanh nếu hai điểm thuộc hai nhóm khác nhau. Khi đó, không có số màu vàng nào bằng bất kỳ số màu xanh nào.

Nói cách khác: gọi khoảng cách giữa hai điểm cùng nhóm là "khoảng cách trong", giữa hai điểm khác nhóm là "khoảng cách ngoài". Yêu cầu là không tồn tại một khoảng cách trong bằng một khoảng cách ngoài.

Người ta chứng minh được rằng với mọi dữ liệu vào hợp lệ luôn tồn tại một cách chia thỏa mãn. Nếu có nhiều cách chia, bạn được phép in ra bất kỳ cách nào.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n, số lượng điểm.
  • Trong n dòng tiếp theo, dòng thứ i chứa hai số nguyên xiyi, tọa độ của điểm thứ i.

Đảm bảo n điểm là phân biệt đôi một.

Dữ liệu ra

  • Dòng đầu in ra a, số lượng điểm thuộc nhóm A (với 1an1).
  • Dòng thứ hai in ra a số nguyên, là chỉ số của các điểm thuộc nhóm A.

Nếu có nhiều đáp án, in ra bất kỳ đáp án nào.

Ràng buộc

  • 2n103
  • 106xi,yi106
  • Các điểm phân biệt đôi một.

Ví dụ

Input Output Giải thích
3
0 0
0 1
1 0
2
2 3
Nhóm A={2,3} gồm hai điểm (0,1)(1,0), nhóm B={1} gồm điểm (0,0). Khoảng cách trong (màu vàng) chỉ có 2. Khoảng cách ngoài (màu xanh) đều bằng 1. Không trùng nhau nên hợp lệ.
4
0 1
0 -1
1 0
-1 0
2
1 2
Nhóm A={1,2} gồm (0,1),(0,1), nhóm B={3,4} gồm (1,0),(1,0). Khoảng cách trong đều bằng 2, khoảng cách ngoài đều bằng 2. Không trùng nên hợp lệ.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0