Pagini recente » Cod sursa (job #1684627) | Cod sursa (job #783619) | Cod sursa (job #1288941) | Cod sursa (job #1225409) | Cod sursa (job #1668099)
#include <iostream>
#include <fstream>
using namespace std;
struct pct{
long long x,y;
pct(int a=0, int b=0){x=a,y=b;}
};
struct dreptunghi{
pct a,b;
long long p(){
return ((b.x-a.x)+(b.y-a.y))*2;
}
long long ar(){
return (b.x-a.x)*(b.y-a.y);
}
dreptunghi (pct x, pct y){a=x,b=y;}
bool valid(){
if(a.x<=b.x&&a.y<=b.y)return true;
return false;
}
dreptunghi inters(dreptunghi d){
return dreptunghi(pct(max(a.x,d.a.x),max(a.y,d.a.y)),pct(min(b.x,d.b.x),min(b.y,d.b.y)));
}
};
long long x0,y0,x1,y1,ar,p;
bool ok12,ok13,ok23,ok123;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
int main()
{
f>>x0>>y0>>x1>>y1;
dreptunghi d1(pct(x0,y0),pct(x1,y1));
f>>x0>>y0>>x1>>y1;
dreptunghi d2(pct(x0,y0),pct(x1,y1));
f>>x0>>y0>>x1>>y1;
dreptunghi d3(pct(x0,y0),pct(x1,y1));
dreptunghi d12=d1.inters(d2);
ok12=d12.valid();
dreptunghi d13=d1.inters(d3);
ok13=d13.valid();
dreptunghi d23=d3.inters(d2);
ok23=d23.valid();
dreptunghi d123=d12.inters(d3);
if(ok12)ok123=d123.valid();
ar=d1.ar()+d2.ar()+d3.ar();
if(ok12)ar-=d12.ar();
if(ok13)ar-=d13.ar();
if(ok23)ar-=d23.ar();
if(ok123)ar+=d123.ar();
p=d1.p()+d2.p()+d3.p();
if(ok12)p-=d12.p();
if(ok13)p-=d13.p();
if(ok23)p-=d23.p();
if(ok123)p+=d123.p();
g<<ar<<" "<<p;
return 0;
}