Pagini recente » Cod sursa (job #2144334) | Cod sursa (job #1730332) | Cod sursa (job #912825) | Cod sursa (job #393595) | Cod sursa (job #3134624)
//Ilie Dumitru
#include<cstdio>
#include<algorithm>
const int NMAX=105;
struct rect
{
int x0, y0, x1, y1;
long long arie()
{
return (x1-x0)*(long long)(y1-y0);
}
long long perim()
{
return (x1-x0+(long long)y1-y0)<<1LL;
}
rect operator*(rect a)
{
if(x0>a.x1 || x1<a.x0 || y0>a.y1 || a.y0>y1)
return {0, 0, 0, 0};
return {std::max(x0, a.x0), std::max(y0, a.y0), std::min(x1, a.x1), std::min(y1, a.y1)};
}
};
int main()
{
FILE* f=fopen("reuniune.in", "r"), *g=fopen("reuniune.out", "w");
//FILE* f=stdin, *g=stdout;
long long arie=0, perim=0;
int i;
rect v[3];
for(i=0;i<3;++i)
fscanf(f, "%d%d%d%d", &v[i].x0, &v[i].y0, &v[i].x1, &v[i].y1);
arie=v[0].arie()+v[1].arie()+v[2].arie()-(v[0]*v[1]).arie()-(v[0]*v[2]).arie()-(v[1]*v[2]).arie()+(v[0]*v[1]*v[2]).arie();
perim=v[0].perim()+v[1].perim()+v[2].perim()-(v[0]*v[1]).perim()-(v[0]*v[2]).perim()-(v[1]*v[2]).perim()+(v[0]*v[1]*v[2]).perim();
fprintf(g, "%lld %lld", arie, perim);
fclose(f);
fclose(g);
return 0;
}