Pagini recente » Cod sursa (job #1020273) | Cod sursa (job #1411788) | Cod sursa (job #531062) | Cod sursa (job #678511) | Cod sursa (job #998904)
Cod sursa(job #998904)
#include <iostream>
#include <fstream>
using namespace std;
struct dreptunghi {long long x1,y1,x2,y2;};
dreptunghi a,b,c;
dreptunghi Int (dreptunghi x, dreptunghi y)
{
dreptunghi crt;
crt.x1=max(x.x1,y.x1);
crt.y1=max(x.y1,y.y1);
crt.x2=min(x.x2,y.x2);
crt.y2=min(x.y2,y.y2);
if (crt.x1>crt.x2 || crt.y1>crt.y2)
crt.x1=crt.x2=crt.y1=crt.y2=0;
return crt;
}
long long aria(dreptunghi x)
{
return 1LL*(x.x2-x.x1)*(x.y2-x.y1);
}
long long perim(dreptunghi x)
{
return 2LL*((x.x2-x.x1)+(x.y2-x.y1));
}
int main()
{
fstream f,g;
f.open("reuniune.in",ios::in);
g.open("reuniune.out",ios::out);
f>>a.x1>>a.y1>>a.x2>>a.y2;
f>>b.x1>>b.y1>>b.x2>>b.y2;
f>>c.x1>>c.y1>>c.x2>>c.y2;
long long perimetru=perim(a)+perim(b)+perim(c)-perim(Int(a,b))-perim(Int(b,c))-perim(Int(c,a))+perim(Int(Int(a,b),c));
long long arie=aria(a)+aria(b)+aria(c)-aria(Int(a,b))-aria(Int(b,c))-aria(Int(c,a))+aria(Int(Int(a,b),c));
g<<arie<<" "<<perimetru;
}