Pagini recente » Cod sursa (job #1234718) | Cod sursa (job #2084259) | Cod sursa (job #1176285) | Cod sursa (job #1755294) | Cod sursa (job #1390869)
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
long long aux, i, a, p;
struct dreptunghi{
long long x1, x2, y1, y2;
} v[4], x;
int arie(dreptunghi a){
return 1LL*(a.x2-a.x1)*(a.y2-a.y1);
}
void reuniune(dreptunghi a, dreptunghi b, dreptunghi &c){
c.x1=(a.x1>b.x1?a.x1:b.x1);
c.x2=(a.x2<b.x2?a.x2:b.x2);
c.y1=(a.y1>b.y1?a.y1:b.y1);
c.y2=(a.y2<b.y2?a.y2:b.y2);
}
long long minim(long long x, long long y, long long z){
if(x>y)
x=y;
if(x>z)
x=z;
return x;
}
long long maxim(long long x, long long y, long long z){
if(x<y)
x=y;
if(x<z)
x=z;
return x;
}
int main(){
for(i=1; i<4; i++)
{
f>>v[i].x1>>v[i].y1>>v[i].x2>>v[i].y2;
if(v[i].x1>v[i].x2)
{
aux=v[i].x1;
v[i].x1=v[i].x2;
v[i].x2=aux;
}
if(v[i].y1>v[i].y2)
{
aux=v[i].y1;
v[i].y1=v[i].y2;
v[i].y2=aux;
}
}
for(i=1; i<4; i++)
a+=arie(v[i]);
reuniune(v[1], v[2], x);
a=1LL*a-arie(x);
reuniune(v[1], v[3], x);
a=1LL*a-arie(x);
reuniune(v[2], v[3], x);
a=1LL*a-arie(x);
reuniune(v[1], x, x);
a=1LL*a+arie(x);
x.x1=minim(v[1].x1, v[2].x1, v[3].x1);
x.y1=minim(v[1].y1, v[2].y1, v[3].y1);
x.x2=maxim(v[1].x2, v[2].x2, v[3].x2);
x.y2=maxim(v[1].y2, v[2].y2, v[3].y2);
g<<a<<' '<<2*(x.x2-x.x1+x.y2-x.y1)<<"\n";
return 0;
}