РСОП XXX 2018
8
D.
PARALLELOGRAM
46
Условие
D. Паралелепипед
---
Даден е паралелепипед P = {(x,y,z): x0 <= x <= x1, y0 <= y <= y1, z0 <= z <= z1} и две точки (x2, y2, z2) и (x3, y3, z3). Координатите на върховете на паралепипеда, както и на двете точки са цели числа от интервала [-1000, 1000]. Напишете програма, която проверява дали дадените две точки лежат върху повърхността на паралелепипеда и ако е така, пресмята квадрата на дължината на най-късия път, минаващ по повърхността на паралелепипеда и съединяващ двете точки.
Вход: На първия ред на стандартния вход ще бъде зададен броят на тестовете. За всеки тест, на първия ред са зададени числата x0, x1, y0, y1, z0, z1, а на втория – числата x2, y2, z2, x3, y3, z3, разделени с по един интервал.
Изход: За всеки тестов пример, на отделен ред на стандартния изход програмата трябва да изведе квадрата на разстоянието между двете точки. Ако поне една от дадените точки не лежи върху повърхността на паралелепипеда, тогава на съответния ред програмата трябва да изведе – 1.
Примерен вход:
2
0 3 0 4 0 5
1 1 0 2 2 0
0 1 0 1 0 1
0 0 0 2 2 2
Примерен изход:
2
-1