trang chủ / đề bài / ptnk_ts10_21_d

Hệ thống mái che

Đề bài

Mô tả

Một dự án xây dựng cơ sở mới cho Trường PTNK gồm hai tòa nhà cao tầng. Trên bản vẽ, nhìn từ trên xuống, các tòa nhà có thể xem như các hình chữ nhật có cạnh song song với hệ trục tọa độ và không giao nhau. Mỗi hình chữ nhật được xác định bởi tọa độ góc trái dưới và góc phải trên. Hình thứ nhất có tọa độ góc trái dưới (x1,y1) và góc phải trên (x2,y2). Hình thứ hai có tọa độ góc trái dưới (x3,y3) và góc phải trên (x4,y4). Tọa độ đều là các số nguyên có giá trị tuyệt đối không vượt quá 106.

Để tiện lợi cho việc đi lại giữa hai tòa nhà và tránh được mưa nắng, nhà trường đề nghị làm một đường mái che nối hai tòa nhà. Trên bản vẽ, đường mái che là một đoạn thẳng nối một điểm trên cạnh hình chữ nhật này đến một điểm trên cạnh của hình chữ nhật còn lại. Để tiết kiệm chi phí, nhà trường cần tìm phương án làm đường mái che sao cho độ dài của đoạn thẳng tương ứng là nhỏ nhất có thể.

Hai hình chữ nhật không giao nhau được hiểu là chúng không có điểm chung nào (kể cả điểm trên cạnh), và không hình nào nằm bên trong hình kia.

Yêu cầu: Cho trước 8 giá trị x1,y1,x2,y2,x3,y3,x4,y4. Hãy tính bình phương độ dài ngắn nhất của đoạn cần làm mái che.

Dữ liệu vào

Một dòng chứa 8 số nguyên x1,y1,x2,y2,x3,y3,x4,y4 có giá trị tuyệt đối không vượt quá 106.

Dữ liệu ra

In ra một số nguyên là bình phương độ dài mái che tìm được.

Ràng buộc

  • |xi|,|yi|≤106 với mọi i.
  • x1<x2, y1<y2, x3<x4, y3<y4.
  • Hai hình chữ nhật không có điểm chung.

Ví dụ

Input Output Giải thích
1 3 4 5 5 2 9 5 1 Hình thứ nhất chiếm 1≤x≤4, 3≤y≤5; hình thứ hai chiếm 5≤x≤9, 2≤y≤5. Mái che ngắn nhất nối (4,4) với (5,4), dài 1, bình phương là 1.
0 0 2 2 5 6 7 9 25 Hình thứ hai nằm chéo phía trên bên phải. Mái che ngắn nhất nối hai góc (2,2) và (5,6): 32+42=25.
0 5 10 8 3 0 6 2 9 Hình thứ hai nằm phía dưới hình thứ nhất. Mái che ngắn nhất là đoạn thẳng đứng, ví dụ nối (4,2) với (4,5), dài 3; nó không đi qua góc nào của hình thứ nhất.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0