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

Tập điểm

Đề bài

Mô tả

Với một tập điểm trên mặt phẳng, ta định nghĩa độ lồi của tập là số lượng điểm lớn nhất trong một tập con tạo thành một đa giác lồi (mọi điểm được chọn đều là đỉnh của đa giác lồi đó).

Cho hai số nguyên nm. Hãy dựng một tập gồm đúng n điểm sao cho:

  • Độ lồi của tập bằng đúng m.
  • Không có ba điểm nào thẳng hàng.
  • Toạ độ của mọi điểm là số nguyên và có giá trị tuyệt đối không vượt quá 108.

Nếu không tồn tại tập điểm thoả mãn, in ra 1.

Dữ liệu vào

Một dòng duy nhất chứa hai số nguyên nm.

Dữ liệu ra

Nếu không có lời giải, in ra một dòng chứa 1.

Ngược lại, in ra n dòng, mỗi dòng chứa hai số nguyên là toạ độ của một điểm trong tập. Nếu có nhiều đáp án, in ra bất kỳ đáp án hợp lệ nào.

Ràng buộc

  • 3m100
  • mn2m

Ví dụ

Input Output Giải thích
4 3 0 0
3 0
0 3
1 1
Bốn điểm, không ba điểm nào thẳng hàng. Ba điểm bất kỳ tạo một tam giác (đa giác lồi 3 đỉnh), nhưng cả 4 điểm không cùng nằm trên một đa giác lồi vì điểm (1, 1) nằm trong tam giác tạo bởi ba điểm còn lại. Do đó độ lồi bằng 3.
6 3 -1 Không thể dựng 6 điểm với độ lồi đúng bằng 3.
6 6 10 0
-10 0
10 1
9 1
9 -1
0 -2
Cả 6 điểm cùng nằm trên một đa giác lồi nên độ lồi bằng 6.

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