Pagini recente » Cod sursa (job #181792) | Istoria paginii utilizator/catalincm | Monitorul de evaluare | Statistici alexandra adela (adela15) | Cod sursa (job #1825440)
#include <fstream>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct drept{
int x1,y1,x2,y2;
};
unsigned long long s,p;
drept a,b,c;
unsigned long long ar(drept d)
{
return (d.x2-d.x1)*(d.y2-d.y1);
}
unsigned long long pe(drept d)
{
return 2*((d.x2-d.x1)+(d.y2-d.y1));
}
drept in(drept a,drept b)
{
if(!(a.y2<b.y1||a.y1>b.y2||a.x2<b.x1||b.x2<a.x1))
{
drept d;
d.x1=max(a.x1,b.x1);
d.y1=max(a.y1,b.y1);
d.x2=min(a.x2,b.x2);
d.y2=min(a.y2,b.y2);
return d;
}
drept d;
d.x1=0;
d.y1=0;
d.x2=0;
d.y2=0;
return d;
}
int main()
{
fin>>a.x1>>a.y1>>a.x2>>a.y2;
fin>>b.x1>>b.y1>>b.x2>>b.y2;
fin>>c.x1>>c.y1>>c.x2>>c.y2;
s=ar(a);
s+=ar(b);
s+=ar(c);
s-=ar(in(a,b));
s-=ar(in(b,c));
s-=ar(in(a,c));
s+=(ar(in(in(a,c),b)));
fout<<s<<' ';
p=pe(a)+pe(b)+pe(c);
p-=(pe(in(a,b))+pe(in(b,c))+pe(in(a,c)));
p+=(pe(in(in(a,c),b)));
fout<<p;
return 0;
}