#include <iostream> #include <iomanip> #include <cstdlib> using namespace std; struct node { double a, b, c, d; node(){} void add(double a, double b, double c, double d){ this->a = a; this->b = b; this->c = c; this->d = d; } void change(void) { // 使得矩阵形式一样 if (a > c) swap(a, c); if (b > d) swap(b, d); return; } }matrix_1, matrix_2; double min(double a, double b) { return a<b ? a : b; } double max(double a, double b) { return a>b ? a : b; } double calc() { double x = min(matrix_1.c, matrix_2.c) - max(matrix_1.a, matrix_2.a); double y = min(matrix_1.d, matrix_2.d) - max(matrix_1.b, matrix_2.b); if (x < 0.00001 || y < 0.00001) { return 0.0; } else { return x * y; } } int main() { double a, b, c, d; while (cin >> a >> b >> c >> d) { matrix_1.add(a, b, c, d); cin >> a >> b >> c >> d; matrix_2.add(a, b, c, d); matrix_1.change(); matrix_2.change(); cout << fixed << setprecision(2) << calc() << endl; } return 0; }