Pagini recente » Monitorul de evaluare | Cod sursa (job #544920) | Cod sursa (job #93515) | Cod sursa (job #1480964) | Cod sursa (job #3322288)
#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);
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;
}