/*
题目:
给出n个矩形的坐标,求所有的矩形的覆盖面积
分析:
离散化,具体请看Matrix67 http://www.matrix67.com/blog/archives/108
*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int X = 205;
double x[X],y[X];
int topx,topy;
int n;
double lx[X],rx[X],ly[X],ry[X];
bool map[X][X];
int posx(double a)
{
for(int i=0;i<topx;i++)
if(x[i]==a)
return i;
return topx;
}
int posy(double a)
{
for(int i=0;i<topy;i++)
if(y[i]==a)
return i;
return topy;
}
void addx(double a)
{
int temp = posx(a);
if(temp==topx)
x[topx++] = a;
}
void addy(double a)
{
int temp = posy(a);
if(temp==topy)
y[topy++] = a;
}
int main()
{
freopen("sum.in","r",stdin);
int cnt = 0;
while(cin>>n,n)
{
topx = topy = 0;
for(int i=0;i<n;i++)
{
cin>>lx[i]>>ly[i]>>rx[i]>>ry[i];
addx(lx[i]);
addx(rx[i]);
addy(ly[i]);
addy(ry[i]);
}
sort(x,x+topx);
sort(y,y+topy);
double ans = 0;
memset(map,false,sizeof(map));
int x1,x2,y1,y2;
for(int i=0;i<n;i++)
{
x1 = posx(lx[i]);
x2 = posx(rx[i]);
y1 = posy(ly[i]);
y2 = posy(ry[i]);
for(int j=x1+1;j<=x2;j++)
for(int k=y1+1;k<=y2;k++)
map[j][k] = true;
}
for(int i=0;i<topx;i++)
for(int j=0;j<topy;j++)
if(map[i][j])
ans += (x[i]-x[i-1])*(y[j]-y[j-1]);
printf("Test case #%d\n",++cnt);
printf("Total explored area: %.2lf\n\n",ans);
}
return 0;
}