Pagini recente » Cod sursa (job #851591) | Cod sursa (job #3214253) | Cod sursa (job #119586) | Cod sursa (job #2376253) | Cod sursa (job #3334422)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct drept
{
long long x1,y1,x2,y2,arie,perimetru;
} d1,d2,d3,d12,d13,d23,dtot;
void citire(drept &d)
{
fin>>d.x1>>d.y1>>d.x2>>d.y2;
}
void procesare(drept &d)
{
if(d.x1>d.x2 || d.y1>d.y2)
{
return;
}
d.arie=abs(d.x1-d.x2)*abs(d.y1-d.y2);
d.perimetru=(abs(d.x1-d.x2)+abs(d.y1-d.y2))*2;
}
void intersectie(drept a, drept b, drept &c)
{
c.x1=max(a.x1,b.x1);
c.y1=max(a.y1,b.y1);
c.x2=min(a.x2,b.x2);
c.y2=min(a.y2,b.y2);
procesare(c);
}
int main()
{
citire(d1);
citire(d2);
citire(d3);
procesare(d1);
procesare(d2);
procesare(d3);
intersectie(d1,d2,d12);
intersectie(d1,d3,d13);
intersectie(d2,d3,d23);
intersectie(d12,d13,dtot);
fout<< d1.arie+d2.arie+d3.arie-d12.arie-d23.arie-d13.arie+dtot.arie << " ";
fout<< d1.perimetru+d2.perimetru+d3.perimetru-d12.perimetru-d23.perimetru-d13.perimetru+dtot.perimetru << "\n";
return 0;
}