Pagini recente » Cod sursa (job #1454956) | Cod sursa (job #1791121) | Cod sursa (job #1578147) | Cod sursa (job #1519887) | Cod sursa (job #1511968)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct dre
{
long long x0,y0,x1,y1;
};
dre intersectie(dre a,dre b)
{dre c;
c.x0=max(a.x0,b.x0);
c.x1=min(a.x1,b.x1);
c.y0=max(a.y0,b.y0);
c.y1=min(a.y1,b.y1);
return c;
}
long long ar(dre a)
{
if(a.x0<=a.x1 && a.y0<=a.y1)
return ((a.x1-a.x0)*(a.y1-a.y0));
else return 0;
}
long long per(dre a)
{
if(a.x0<=a.x1 && a.y0<=a.y1)
return (2*(a.x1-a.x0)+2*(a.y1-a.y0));
else return 0;
}
int main()
{long long arie,perimetru;
dre a,b,c;
fin>>a.x0>>a.y0>>a.x1>>a.y1;
fin>>b.x0>>b.y0>>b.x1>>b.y1;
fin>>c.x0>>c.y0>>c.x1>>c.y1;
arie=perimetru=0;
arie=ar(a)+ar(b)+ar(c)-ar(intersectie(a,b))-ar(intersectie(a,c))-ar(intersectie(b,c))
+ar(intersectie(a,intersectie(b,c)) );
perimetru=per(a)+per(b)+per(c)-per(intersectie(a,b))-per(intersectie(a,c))-per(intersectie(b,c))
+per(intersectie(a,intersectie(b,c)) );
fout<<arie<<' '<<perimetru;
}