Pagini recente » Cod sursa (job #2546685) | Cod sursa (job #202573) | Cod sursa (job #481997) | Cod sursa (job #1227760) | Cod sursa (job #1882257)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("reuniune.in");
ofstream out("reuniune.out");
long long aria,perimetru;
struct figura
{
int xsus,xjos,ysus,yjos;
} a,b,c;
long long produs(figura p)
{
return (long long)2*((p.ysus-p.yjos)+(p.xsus-p.xjos));
}
long long arie(figura p)
{
return (long long)(p.ysus-p.yjos)*(p.xsus-p.xjos);
}
figura intersect( figura x, figura y )
{
figura z;
z.xjos = max( x.xjos, y.xjos );
z.yjos = max( x.yjos, y.yjos );
z.xsus = min( x.xsus, y.xsus );
z.ysus = min( x.ysus, y.ysus );
if( z.xjos > z.xsus || z.yjos > z.ysus )
{
z.xjos = z.xsus = z.ysus = z.yjos = 0;
}
return z;
}
int main()
{
in >> a.xjos >> a.yjos >> a.xsus >> a.ysus;
in >> b.xjos >> b.yjos >> b.xsus >> b.ysus;
in >> c.xjos >> c.yjos >> c.xsus >> c.ysus;
aria = arie( a ) + arie( b ) + arie( c );
perimetru = produs( a ) + produs( b ) + produs( c );
aria -= arie( intersect( a, b ) );
perimetru -= produs( intersect( a, b ) );
aria -= arie( intersect( a, c ) );
perimetru -= produs( intersect( a, c ) );
aria -= arie( intersect( b, c ) );
perimetru -= produs( intersect( b, c ) );
aria += arie( intersect( b, intersect( a, c ) ) );
perimetru += produs(
intersect( b, intersect( a, c ) ) );
out << aria << " " << perimetru;
return 0;
}