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

Bắn súng đôi

Đề bài

Mô tả

Trên trường bắn có n bia, mỗi bia là một hình tròn có tâm nằm trên trục Ox. Vận động viên đã bắn m phát; phát thứ i được mô tả bởi tọa độ điểm chạm (xi,yi) trên mặt phẳng.

Một bia được xem là trúng bởi một phát bắn nếu điểm chạm nằm bên trong hình tròn hoặc trên biên của nó.

Với mỗi bia, hãy in ra số thứ tự của phát bắn đầu tiên trúng bia đó, hoặc 1 nếu không có phát nào trúng.

Đảm bảo không có hai bia nào trùng nhau, cắt nhau hay lồng nhau; các bia có thể tiếp xúc với nhau (khi đó điểm tiếp xúc thuộc cả hai bia và một phát bắn tại điểm đó được tính là trúng cả hai).

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số bia.
  • n dòng tiếp theo, mỗi dòng chứa hai số nguyên xr — tọa độ tâm và bán kính của một bia.
  • Dòng tiếp theo chứa số nguyên m — số phát bắn.
  • m dòng cuối, mỗi dòng chứa hai số nguyên xy — tọa độ điểm chạm của một phát bắn.

Các bia và các phát bắn được đánh số từ 1 theo thứ tự nhập vào.

Dữ liệu ra

  • Dòng đầu in ra số bia bị trúng.
  • Dòng thứ hai in ra n số nguyên: số thứ tự phát bắn đầu tiên trúng vào từng bia, hoặc 1 nếu bia đó không bị trúng. Các số cách nhau bởi dấu cách.

Ràng buộc

  • 1n104
  • 1m2·105
  • 2·104x2·104 (tâm bia và tọa độ phát bắn)
  • 1r1000
  • 2·104y2·104 (tọa độ phát bắn)
  • Mọi số trong dữ liệu vào đều là số nguyên.

Ví dụ

Input Output Giải thích
3
2 1
5 2
10 1
5
0 1
1 3
3 0
4 0
4 0
2
3 3 -1
Bia 1 tâm (2,0) bán kính 1, bia 2 tâm (5,0) bán kính 2, bia 3 tâm (10,0) bán kính 1. Phát 3 tại (3,0) nằm trên biên bia 1 và biên bia 2, nên là phát đầu tiên trúng cả hai. Bia 3 không bị trúng.
3
3 2
7 1
11 2
4
2 1
6 0
6 4
11 2
3
1 2 4
Phát 1 tại (2,1) nằm trong bia 1 (khoảng cách tới tâm 22). Phát 2 tại (6,0) nằm trên biên bia 2. Phát 4 tại (11,2) nằm trong bia 3.

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 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