Pagini recente » Cod sursa (job #1840888) | Cod sursa (job #1664862) | Cod sursa (job #2604545) | Cod sursa (job #3257419) | Cod sursa (job #1225559)
#include <fstream>
using namespace std;
struct DREPTUNGHI
{
long x1,x2,y1,y2;
};
int max(int x, int y)
{
if(x>y) return x;
else return y;
}
int min(int x, int y)
{
if(x>y) return y;
else return x;
}
DREPTUNGHI reuniune (DREPTUNGHI dr1, DREPTUNGHI dr2)
{
DREPTUNGHI d;
d.x1=max(dr1.x1,dr2.x1);
d.y1=max(dr1.y1,dr2.y1);
d.x2=min(dr1.x2,dr2.x2);
d.y2=min(dr1.y2,dr2.y2);
if(d.x1>d.x2 || d.y2<d.y1)
d.x1=d.x2=d.y1=d.y2=0;
return d;
}
long long ARIE (DREPTUNGHI d1)
{
long long a;
a=(d1.x2-d1.x1)*(d1.y2-d1.y1);
return a;
}
long long PERIMETRU (DREPTUNGHI d1)
{
long long p;
p=2*((d1.x2-d1.x1)+(d1.y2-d1.y1));
return p;
}
int main()
{
ifstream in("reuniune.in");
ofstream out("reuniune.out");
long long arie,p;
DREPTUNGHI a,b,c,d;
in>>a.x1>>a.y1>>a.x2>>a.y2;
in>>b.x1>>b.y1>>b.x2>>b.y2;
in>>c.x1>>c.y1>>c.x2>>c.y2;
arie=ARIE(a)+ARIE(b)+ARIE(c);
p=PERIMETRU(a)+PERIMETRU(b)+PERIMETRU(c);
arie=arie-ARIE(reuniune(a,b))-ARIE(reuniune(a,c))-ARIE(reuniune(b,c));
p=p-PERIMETRU(reuniune(a,b))-PERIMETRU(reuniune(a,c))-PERIMETRU(reuniune(b,c));
d=reuniune(a,b);
d=reuniune(d,c);
arie=arie+ARIE(d);
p=p+PERIMETRU(d);
out<<arie<<" "<<p<<'\n';
return 0;
}