Pagini recente » Cod sursa (job #1904004) | Cod sursa (job #2475661) | Cod sursa (job #1451120) | Cod sursa (job #1159065) | Cod sursa (job #3129474)
#include <iostream>
#include <fstream>
using namespace std;
struct dreptunghi
{
int x0,y0,x1,y1;
};
ifstream f("reuniune.in");
ofstream g("reuniune.out");
inline long long int arie(dreptunghi d)
{
return 1LL*(d.x1-d.x0)*(d.y1-d.y0);
}
inline long long int perimetru(dreptunghi d)
{
return 2LL*(d.x1-d.x0)+2LL*(d.y1-d.y0);
}
dreptunghi intersectie(const dreptunghi &d1, const dreptunghi &d2)
{
dreptunghi 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=d.x1=0;
d.y0=d.y1=0;
}
return d;
}
int main()
{
dreptunghi D[3];
long long int A=0,P=0;
dreptunghi dd;
for (int i=0;i<3;i++)
{
f>>D[i].x0>>D[i].y0>>D[i].x1>>D[i].y1;
A+=arie(D[i]);
P+=perimetru(D[i]);
}
for (int i=0;i<2;i++)
for (int j=i+1;j<3;j++)
{
dd=intersectie(D[i],D[j]);
A-=arie(dd);
P-=perimetru(dd);
}
dd=intersectie(intersectie(D[0],D[1]),D[2]);
A+=arie(dd);
P+=perimetru(dd);
g<<A<<' '<<P;
return 0;
}