Pagini recente » Cod sursa (job #2230653) | Cod sursa (job #1709533) | Cod sursa (job #2498513) | Cod sursa (job #2051538) | Cod sursa (job #2146156)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
long long A,P;
struct drpt
{
int x0,x1,y0,y1;
} d[4];
inline long long arie(drpt d)
{
return 1LL*(d.x1-d.x0)*(d.y1-d.y0);
}
inline long long per(drpt d)
{
return 2LL*(d.x1-d.x0+d.y1-d.y0);
}
drpt intersectie(drpt d1, drpt d2)
{
drpt d;
d.x0=max(d1.x0, d2.x0);
d.y0=max(d1.y0, d2.y0);
d.x1=min(d1.x1, d2.x1);
d.y1=min(d1.y1, d2.y1);
if(d.x0>d.x1 || d.y0>d.y1)
{
d.x0=d1.x1=0;
d.y0=d1.y1=0;
}
return d;
}
int main()
{
drpt dd;
for(int i=1; i<=3; i++)
{
f>>d[i].x0>>d[i].y0>>d[i].x1>>d[i].y1;
A+=arie(d[i]);
P+=per(d[i]);
}
for(int i=1; i<3; i++)
for(int j=i+1; j<=3; j++)
{
dd=intersectie(d[i],d[j]);
A-=arie(dd);
P-=per(dd);
}
dd=intersectie(intersectie(d[1],d[2]),d[3]);
A+=arie(dd);
P+=per(dd);
g<<A<<' '<<P<<'\n';
return 0;
}