Pagini recente » Cod sursa (job #3197508) | Cod sursa (job #158983) | Cod sursa (job #1279464) | Cod sursa (job #548839) | Cod sursa (job #3236263)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
const long long int MAX=2000000000;
struct rect{
long long int x0,y0,x1,y1;
};
long long int arie(rect r){
if(r.x1<r.x0 || r.y1<r.y0)return 0;
return abs(r.x0-r.x1)*abs(r.y0-r.y1);
}
long long int perimetru(rect r){
if(r.x1<r.x0 || r.y1<r.y0)return 0;
return 2*(abs(r.x0-r.x1)+abs(r.y0-r.y1));
}
rect inter(vector<rect> v){
long long int x0=-MAX,y0=-MAX,x1=MAX,y1=MAX;
for(auto r: v){
if(r.x0>x0)x0=r.x0;
if(r.y0>y0)y0=r.y0;
if(r.x1<x1)x1=r.x1;
if(r.y1<y1)y1=r.y1;
}
return {x0,y0,x1,y1};
}
int main()
{
rect r1,r2,r3;
long long int a,b,c,d;
fin>>a>>b>>c>>d;
r1={a,b,c,d};
fin>>a>>b>>c>>d;
r2={a,b,c,d};
fin>>a>>b>>c>>d;
r3={a,b,c,d};
fout<<arie(r1)+arie(r2)+arie(r3)-arie(inter({r1,r2}))-arie(inter({r1,r3}))-arie(inter({r2,r3}))+arie(inter({r1,r2,r3}))<<" ";
fout<<perimetru(r1)+perimetru(r2)+perimetru(r3)-perimetru(inter({r1,r2}))-perimetru(inter({r1,r3}))-perimetru(inter({r2,r3}))+perimetru(inter({r1,r2,r3}))<<endl;
return 0;
}