Pagini recente » Cod sursa (job #2378560) | Diferente pentru implica-te/arhiva-educationala intre reviziile 81 si 80 | Cod sursa (job #518198) | Cod sursa (job #1224457) | Cod sursa (job #2138073)
#include<fstream>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
long long l0[4],c0[4],l1[4],c1[4];
long long rx1,rx2=(1<<28),ry1,ry2=(1<<28);
long long rez1,rez2;
int main()
{
for(int i=1;i<=3;i++)
fin>>l0[i]>>c0[i]>>l1[i]>>c1[i];
for(int i=1;i<=3;i++)
{
rez1+=2*(l1[i]-l0[i]+c1[i]-c0[i]);
rez2+=(l1[i]-l0[i])*(c1[i]-c0[i]);
}
for(int i=1;i<3;i++)
for(int j=i+1;j<=3;j++)
{
rx1=max(l0[i],l0[j]);
rx2=min(l1[i],l1[j]);
ry1=max(c0[i],c0[j]);
ry2=min(c1[i],c1[j]);
if(rx1<=rx2)
if(ry1<=ry2)
{
rez1-=2*(rx2-rx1+ry2-ry1);
rez2-=(rx2-rx1)*(ry2-ry1);
}
}
rx1=max(l0[1],l0[2]);
rx2=min(l1[1],l1[2]);
ry1=max(c0[1],c0[2]);
ry2=min(c1[1],c1[2]);
rx1=max(rx1,l0[3]);
rx2=min(rx2,l1[3]);
ry1=max(ry1,c0[3]);
ry2=min(ry2,c1[3]);
if(rx1<=rx2)
if(ry1<=ry2)
{
rez1+=2*(rx2-rx1+ry2-ry1);
rez2+=(rx2-rx1)*(ry2-ry1);
}
fout<<rez2<<' '<<rez1;
}