#include #define MIN(a, b) ((a) > (b) ? (b) : (a)) #define MAX(a, b) ((a) < (b) ? (b) : (a)) int main() { int N = 0; // Tři intervaly, každý pro jednu stranu int left[3], right[3]; scanf("%d", &N); if (N == 0) { printf("0\n"); return 0; } // První interval, jeho průnik je identický for (int i = 0; i < 3; i++) { int a,b; scanf("%d %d", &a, &b); left[i] = a; right[i] = b; } // Zbytek intervalů for (int k = 1; k < N; k++) { for (int i = 0; i < 3; i++) { int a,b; scanf("%d %d", &a, &b); // Spočítáme průnik s novým kvádrem left[i] = MAX(a,left[i]); right[i] = MIN(b,right[i]); } } // Objem může být velmi velký, chceme 64 bitů unsigned long long objem = 1; for (int i = 0; i < 3; i++) { if (left[i] > right[i]) // Prázdný průnik má nulový objem objem = 0; else objem *= right[i]-left[i]; } printf("%llu\n",objem); return 0; }