6013 {
6014 int x1[2];
6015 int x2[2];
6016 int y1[2];
6017 int y2[2];
6018 for(int i = 0; i < 2; i++) {
6019 cin >> x1[i] >> y1[i] >> x2[i] >> y2[i];
6020 }
6021 const unsigned int area = abs(x2[0] - x1[0]) * abs(y2[0] - y1[0]);
6022 int x_1 = x1[1];
6023 int x_2 = x2[1];
6024 int y_1 = y1[1];
6025 int y_2 = y2[1];
6026 x_1 = max(x_1, x1[0]);
6027 x_2 = max(x_2, x1[0]);
6028 x_1 = min(x_1, x2[0]);
6029 x_2 = min(x_2, x2[0]);
6030 y_1 = max(y_1, y1[0]);
6031 y_2 = max(y_2, y1[0]);
6032 y_1 = min(y_1, y2[0]);
6033 y_2 = min(y_2, y2[0]);
6034 if(x_2 == x_1 || y_2 == y_1) {
6035
6036 cout << area;
6037 return 0;
6038 }
6039 if(y_2 == y2[0] && y_1 == y1[0]) {
6040
6041 cout << abs(abs(x2[0] - x1[0]) - abs(x_2 - x_1)) * abs(y_2 - y_1);
6042 return 0;
6043 }
6044 if(x_1 == x1[0] && x_2 == x2[0] && (y_1 == y1[0] || y_2 == y2[0])) {
6045
6046 cout << (x_2 - x_1) * max(y2[0] - y_2, y_1 - y1[0]);
6047 return 0;
6048 }
6049 cout << area;
6050 return 0;
6051 }