Pagini recente » Cod sursa (job #171293) | Cod sursa (job #1255836) | Cod sursa (job #2628137) | Cod sursa (job #1348235) | Cod sursa (job #965528)
Cod sursa(job #965528)
#include <cstdio>
#include <algorithm>
using namespace std;
struct drunghi{
int x0,y0;
int x1,y1;
}v[3];
int area(const drunghi & P)
{
const int dx = P.x1 - P.x0;
const int dy = P.y1 - P.y0;
return dx * dy;
}
int perim(const drunghi &P)
{
const int dx = P.x1 - P.x0;
const int dy = P.y1 - P.y0;
return 2*(dx + dy);
}
drunghi intersect(const drunghi &a,const drunghi &b)
{
drunghi ret;
ret.x0 = max(a.x0,b.x0);
ret.x1 = min(a.x1,b.x1);
ret.y0 = max(a.y0,b.y0);
ret.y1 = min(a.y1,b.y1);
if(ret.x1 < ret.x0 || ret.y1 < ret.y0)
return {0,0,0,0};
else return ret;
}
int main()
{
freopen("reuniune.in", "r", stdin);
freopen("reuniune.out", "w", stdout);
int i;
int show_area = 0;
int show_perim = 0;
for(i = 0 ; i < 3 ; ++ i){
scanf("%d%d%d%d",&v[i].x0,&v[i].y0,&v[i].x1,&v[i].y1);
show_area += area(v[i]);
show_perim += perim(v[i]);
}
drunghi x;
x = intersect(v[0],v[1]);
show_area -= area(x);
show_perim -= perim(x);
x = intersect(v[1],v[2]);
show_area -= area(x);
show_perim -= perim(x);
x = intersect(v[0],v[2]);
show_area -= area(x);
show_perim -= perim(x);
x = intersect(x,v[1]);
show_area += area(x);
show_perim += perim(x);
printf("%d %d\n",show_area,show_perim);
return 0;
}