Pagini recente » Cod sursa (job #3129337) | Cod sursa (job #1875967) | Cod sursa (job #1320486) | Cod sursa (job #1864732) | Cod sursa (job #2414478)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct idk
{
int x1,x2,y1,y2;
};
idk a[5];
long long arie(idk x)
{
return 1LL*(x.x2-x.x1)*(x.y2-x.y1);
}
long long perimetru(idk x)
{
return 1LL*2*(x.y2-x.y1+x.x2-x.x1);
}
idk U(idk x,idk y)
{
idk rasp;
rasp.x1=max(x.x1,y.x1);
rasp.y1=max(x.y1,y.y1);
rasp.x2=min(x.x2,y.x2);
rasp.y2=min(x.y2,y.y2);
if(rasp.x1<=rasp.x2 and rasp.y1<=rasp.y2) return rasp;
idk zero;
zero.x1=zero.y1=zero.x2=zero.y2=0;
return zero;
}
int main()
{
for(int i=1;i<=3;i++)
fin >> a[i].x1 >> a[i].y1 >> a[i].x2 >> a[i].y2;
long long A = arie(a[1])+arie(a[2])+arie(a[3])-arie(U(a[1],a[2]))-arie(U(a[1],a[3]))-arie(U(a[2],a[3]))+arie(U(a[3],U(a[1],a[2])));
long long P = perimetru(a[1])+perimetru(a[2])+perimetru(a[3])-perimetru(U(a[1],a[2]))-perimetru(U(a[1],a[3]))-perimetru(U(a[2],a[3]))+perimetru(U(a[3],U(a[1],a[2])));
fout << A << ' ' << P;
return 0;
}