Pagini recente » Cod sursa (job #395874) | Cod sursa (job #1911345) | Cod sursa (job #2702968) | Cod sursa (job #120828) | Cod sursa (job #2247201)
#include <fstream>
typedef long long ll;
ll area(ll*a)
{
return (a[2] - a[0])*(a[3] - a[1]);
}
ll peri(ll*a)
{
return 2*((a[2] - a[0]) + (a[3] - a[1]));
}
ll* sect(ll*a, ll*b)
{
ll *sol = new ll[4];
sol[0] = std::max(a[0],b[0]);
sol[1] = std::max(a[1],b[1]);
sol[2] = std::min(a[2],b[2]);
sol[3] = std::min(a[3],b[3]);
if(sol[0]>sol[2] || sol[1]>sol[3])
{
sol[2] = sol[0];
sol[3] = sol[1];
}
return sol;
}
int main()
{
ll *a,*b,*c;
a = new ll[4];
b = new ll[4];
c = new ll[4];
std::fstream fin("reuniune.in",std::ios::in),
fout("reuniune.out",std::ios::out);
fin>>a[0]>>a[1]>>a[2]>>a[3];
fin>>b[0]>>b[1]>>b[2]>>b[3];
fin>>c[0]>>c[1]>>c[2]>>c[3];
ll sol1 = area(a) + area(b) + area(c) -
(area(sect(a,b)) + area(sect(b,c)) + area(sect(c,a)) ) +
area(sect(a,sect(b,c)));
ll sol2 = peri(a) + peri(b) + peri(c) -
(peri(sect(a,b)) + peri(sect(b,c)) + peri(sect(c,a))) +
peri(sect(a,sect(b,c)));
fout<<sol1<<' '<<sol2;
}