Pagini recente » Sandbox (cutiuţa cu năsip) | Cod sursa (job #3257337) | Cod sursa (job #642902) | Cod sursa (job #707131) | Cod sursa (job #1178965)
#include<fstream>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct drept
{
int x0,y0,x1,y1;
} O,a,b,c,d,e,f,g;
long long ar,pr;
long long arie(drept A)
{
long long x=A.x1-A.x0,y=A.y1-A.y0;
return x*y;
}
long long peri(drept A)
{
long long x=A.x1-A.x0,y=A.y1-A.y0;
return (x+y)<<1;
}
drept inters(drept A, drept B)
{
int X0,Y0,X1,Y1;
drept R;
X0=max(A.x0,B.x0);
Y0=max(A.y0,B.y0);
X1=min(A.x1,B.x1);
Y1=min(A.y1,B.y1);
R.x0=X0, R.y0=Y0, R.x1=X1, R.y1=Y1;
if (X0>X1 || Y0>Y1) return O;
else return R;
}
int main()
{
fin>>a.x0>>a.y0>>a.x1>>a.y1;
fin>>b.x0>>b.y0>>b.x1>>b.y1;
fin>>c.x0>>c.y0>>c.x1>>c.y1;
d=inters(a,b), e=inters(b,c), f=inters(c,a);
g=inters(c,d);
ar=arie(a)+arie(b)+arie(c)-arie(d)-arie(e)-arie(f)+arie(g);
pr=peri(a)+peri(b)+peri(c)-peri(d)-peri(e)-peri(f)+peri(g);
fout<<ar<<' '<<pr<<'\n';
return 0;
}