Pagini recente » Cod sursa (job #3305100) | Cod sursa (job #789310) | Cod sursa (job #3323381) | Cod sursa (job #2717309) | Cod sursa (job #3322292)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct punct{
long long int x,y;
};
struct dreptunghi{
punct p0,p1;
}d[4];
dreptunghi intersect(dreptunghi a, dreptunghi b)
{
dreptunghi c;
c.p0.x=max(a.p0.x,b.p0.x);
c.p0.y=max(a.p0.y,b.p0.y);
c.p1.x=min(a.p1.x,b.p1.x);
c.p1.y=min(a.p1.y,b.p1.y);
if(c.p0.x>c.p1.x || c.p0.y>c.p1.y)
{
c.p0.x=0;
c.p0.y=0;
c.p1.x=0;
c.p1.y=0;
}
return c;
}
long long int arie(dreptunghi a){
return abs(a.p0.x-a.p1.x)*abs(a.p0.y-a.p1.y);
};
long long int perimetru(dreptunghi a){
return abs(a.p0.x-a.p1.x)*2+abs(a.p0.y-a.p1.y)*2;
};
int main()
{
for(int i=1;i<=3;i++)
{
fin>>d[i].p0.x>>d[i].p0.y>>d[i].p1.x>>d[i].p1.y;
}
long long A,P;
A=arie(d[1])+arie(d[2])+arie(d[3])-arie(intersect(d[1],d[2]))-arie(intersect(d[2],d[3]))-arie(intersect(d[3],d[1]))+arie(intersect(d[1],intersect(d[2],d[3])));
P=perimetru(d[1])+perimetru(d[2])+perimetru(d[3])-perimetru(intersect(d[1],d[2]))-perimetru(intersect(d[2],d[3]))-perimetru(intersect(d[3],d[1]))+perimetru(intersect(d[1],intersect(d[2],d[3])));
fout<<A<<" "<<P;
return 0;
}