Pongo la mía, en C++. El formato de entrada es la longitud del lado del cubo y a continuación las coordenadas del vértice con coordenadas más pequeñas. Por ejemplo, si se quiere la intersección del cubo de lado 4 con vértice de menores coordenadas en (0,0,0) con el cubo de lado 3 con vértice de menores coordenadas en (-1,-1,-1), la entrada sería así:
Y la salida devuelve el volumen de la intersección (devuelve 0 si la intersección es vacía).
Citar4
0 0 0
3
-1 -1 -1
Y la salida devuelve el volumen de la intersección (devuelve 0 si la intersección es vacía).
Código (cpp) [Seleccionar]
#include <iostream>
#include <vector>
using namespace std;
void lee(vector<int>& v) {
int len;
cin >> len;
for (int i = 0; i < 3; ++i) {
cin >> v[i];
v[i + 3] = v[i] + len;
}
}
int main() {
vector<int> A(6), B(6);
int res = 1;
lee(A); lee(B);
for (int i = 0; i < 3; ++i) A[i] = max(A[i], B[i]);
for (int i = 3; i < 6; ++i) A[i] = min(A[i], B[i]);
for (int i = 0; i < 3; ++i) res *= max(0, A[3 + i] - A[i]);
cout << res << endl;
}