Pagini recente » Cod sursa (job #2058683) | Cod sursa (job #193330) | Cod sursa (job #1177973) | Cod sursa (job #2668538) | Cod sursa (job #1994673)
#include <fstream>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct punct{
long long x,y;
};
long long aria(punct B, punct A)
{
return (B.x-A.x)*(B.y-A.y);
}
long long perim(punct A, punct B)
{
return 2*((B.x-A.x)+(B.y-A.y));
}
struct dreptunghi{
punct a,b;
long long arie=0,perimetru=0;
void calc()
{
arie=aria(a,b);
perimetru=perim(a,b);
}
};
void citire(dreptunghi &nr)
{
punct A,B;
fin >> A.x >> A.y >> B.x >> B.y;
nr.a=A;
nr.b=B;
nr.calc();
}
dreptunghi intersectie(dreptunghi nr1, dreptunghi nr2)
{
dreptunghi inter;
inter.a.x=max(nr1.a.x,nr2.a.x);
inter.b.x=min(nr1.b.x,nr2.b.x);
inter.a.y=max(nr1.a.y,nr2.a.y);
inter.b.y=min(nr1.b.y,nr2.b.y);
inter.calc();
return inter;
}
int main()
{
dreptunghi nr1,nr2,nr3;
citire(nr1);citire(nr2);citire(nr3);
dreptunghi nr12,nr23,nr13,nr123;
nr12=intersectie(nr1,nr2);
nr23=intersectie(nr2,nr3);
nr13=intersectie(nr1,nr3);
nr123=intersectie(nr12,nr23);
fout << nr1.arie+nr2.arie+nr3.arie-nr12.arie-nr23.arie-nr13.arie+nr123.arie << " ";
fout << nr1.perimetru+nr2.perimetru+nr3.perimetru-nr12.perimetru-nr23.perimetru-nr13.perimetru+nr123.perimetru;
return 0;
}