Pagini recente » Cod sursa (job #908875) | Cod sursa (job #2232738) | Cod sursa (job #564702) | Cod sursa (job #2887299) | Cod sursa (job #2743810)
#include <fstream>
using namespace std;
ifstream in("reuniune.in");
ofstream out("reuniune.out");
struct point
{
int x,y;
}a1,a2,b1,b2,c1,c2;
point s,d;
void intersectie(point p1,point p2,point m1,point m2)
{
s.y=max(p1.y,m1.y);
s.x=max(p1.x,m1.x);
d.y=min(p2.y,m2.y);
d.x=min(p2.x,m2.x);
}
int main()
{
int p=0,k,a=0;
point s2,d2;
in>>a1.x>>a1.y>>a2.x>>a2.y;
a+=(a2.y-a1.y)*(a2.x-a1.x);
p+=(a2.y-a1.y)+(a2.x-a1.x);
in>>b1.x>>b1.y>>b2.x>>b2.y;
a+=(b2.y-b1.y)*(b2.x-b1.x);
p+=(b2.y-b1.y)+(b2.x-b1.x);
in>>c1.x>>c1.y>>c2.x>>c2.y;
a+=(c2.y-c1.y)*(c2.x-c1.x);
p+=(c2.y-c1.y)+(c2.x-c1.x);
intersectie(a1,a2,b1,b2);
if(s.x<=d.x && s.y<=d.y)
{
a-=(d.x-s.x)*(d.y-s.y);
p-=(d.x-s.x)+(d.y-s.y);
}
s2=s;
d2=d;
intersectie(s2,d2,c1,c2);
if(s.x<=d.x && s.y<=d.y)
{
a+=(d.x-s.x)*(d.y-s.y);
p+=(d.x-s.x)+(d.y-s.y);
}
intersectie(a1,a2,c1,c2);
if(s.x<=d.x && s.y<=d.y)
{
a-=(d.x-s.x)*(d.y-s.y);
p-=(d.x-s.x)+(d.y-s.y);
}
intersectie(b1,b2,c1,c2);
if(s.x<=d.x && s.y<=d.y)
{
a-=(d.x-s.x)*(d.y-s.y);
p-=(d.x-s.x)+(d.y-s.y);
}
out<<a<<" "<<p*2;
return 0;
}