Chip & Dale

Xem dạng PDF

Gửi bài giải


Điểm: 0,89 (OI)
Giới hạn thời gian: 0.38s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Hai anh em Chip và Dale đang chơi trò chơi "nối dây". Đó là trò chơi trên bảng có ~N \times N~ nút lưới. Các nút của lưới được đánh số từ ~0~ đến ~N - 1~ theo chiều từ trên xuống và ~0~ đến ~N - 1~ theo chiều từ trái sang phải. Tọa độ của một nút được thể hiện bằng một cặp số trong đó số thứ nhất là tọa độ cột, số thứ hai là tọa độ dòng. Chip sẽ chọn ra ~4~ điểm ~A_{1}~, ~A_{2}~, ~B_{1}~, ~B_{2}~. Chip yêu cầu Dale sử dụng các nét vẽ ngang (dọc) theo các đường kẻ của lưới để vẽ ~2~ đường gấp khúc thỏa mãn:

  • Đường gấp khúc thứ nhất nối ~A_{1}~ với ~A_{2}~.
  • Đường gấp khúc thứ hai nối ~B_{1}~ với ~B_{2}~.
  • Hai đường gấp khúc không có điểm chung.
  • Tổng độ dài hai đường gấp khúc là nhỏ nhất có thể.

Dale có vẻ không thành thạo lắm với trò chơi này, bạn hãy giúp Dale tính tổng độ dài nhỏ nhất của hai đường gấp khúc.

Input

Dòng đầu ghi số nguyên ~T~ là số test.

Tiếp theo là ~T~ test, mỗi test được ghi trên ~3~ dòng

Dòng thứ nhất ghi số ~N~.

Dòng thứ hai ghi ~4~ số là tọa độ cột của ~4~ điểm ~A_{1}~, ~A_{2}~, ~B_{1}~, ~B_{2}~.

Dòng thứ ba ghi ~4~ số là tọa độ dòng của ~4~ điểm ~A_{1}~, ~A_{2}~, ~B_{1}~, ~B_{2}~.

Output

Mỗi test ghi đáp số trên một dòng.

Nếu không có cách nối dây thỏa mãn, ghi ra ~- 1~.

Nếu có cách nối dây thỏa mãn, ghi ra tổng độ dài ~2~ đường gấp khúc.

Giới hạn

~1 \leq T \leq 5~

~2 \leq N \leq 500~

Sample Input

1
7
2 5 4 4
1 4 5 0

Sample Output

15

Bình luận

Hãy đọc nội quy trước khi bình luận.


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