Pagini recente » Cod sursa (job #504234) | Cod sursa (job #1249107) | Cod sursa (job #1738611) | Cod sursa (job #80691) | Cod sursa (job #2653471)
#include <fstream>
#define ll long long
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct drept {ll x,y,a,b;};
drept d[4];
ll ar(drept D)
{ return (D.a-D.x)*(D.b-D.y);}
ll per(drept D)
{ return 2*((D.a-D.x)+(D.b-D.y));}
drept inters(drept A, drept B)
{ ll x=max(A.x,B.x);
ll y=max(A.y,B.y);
ll a=min(A.a,B.a);
ll b=min(A.b,B.b);
drept v={0,0,0,0};
if(x<=a and y<=b) {v.x=x; v.y=y; v.a=a; v.b=b;}
return v;
}
int main()
{ for(int i=1;i<=3;i++) f>>d[i].x>>d[i].y>>d[i].a>>d[i].b;
ll perimetru,arie;
arie=ar(d[1])+ar(d[2])+ar(d[3])-ar(inters(d[1],d[2]))-ar(inters(d[1],d[3]))-ar(inters(d[2],d[3]))+ar(inters(inters(d[1],d[2]),d[3]));
perimetru=per(d[1])+per(d[2])+per(d[3])-per(inters(d[1],d[2]))-per(inters(d[1],d[3]))-per(inters(d[2],d[3]))+per(inters(inters(d[1],d[2]),d[3]));
g<<arie<<" "<<perimetru<<'\n';
return 0;
}