Pagini recente » Cod sursa (job #233554) | Cod sursa (job #438591) | Cod sursa (job #2486615) | Cod sursa (job #2932326) | Cod sursa (job #2763985)
#include <bits/stdc++.h>
using namespace std;
ifstream in("reuniune.in");
ofstream out("reuniune.out");
typedef long long ll;
struct rect
{
ll x1;
ll y1;
ll x2;
ll y2;
void init()
{
in>>x1>>y1;
in>>x2>>y2;
}
ll area()
{
return (x2-x1)*(y2-y1);
}
ll perm()
{
return 2*(x2-x1+y2-y1);
}
}v[3];
rect unite(rect a,rect b)
{
rect u;
u.x1=max(a.x1,b.x1);
u.x2=min(a.x2,b.x2);
u.y1=max(a.y1,b.y1);
u.y2=min(a.y2,b.y2);
if(u.x1>u.x2 or u.y1>u.y2)
u={0,0,0,0};
return u;
}
ll area,perm;
int main()
{
for(ll i=0;i<3;++i)
{
v[i].init();
area+=v[i].area();
perm+=v[i].perm();
}
for(ll i=0;i<2;++i)
for(ll j=i+1;j<3;++j)
{
rect u=unite(v[i],v[j]);
area-=u.area();
perm-=u.perm();
}
rect u=unite(unite(v[0],v[1]),v[2]);
area+=u.area();
perm+=u.perm();
out<<area<<' '<<perm<<'\n';
return 0;
}