Pagini recente » Cod sursa (job #768534) | Cod sursa (job #2102181) | Cod sursa (job #2551570) | Cod sursa (job #1071028) | Cod sursa (job #3155461)
#include<bits/stdc++.h>
using namespace std;
ifstream in("reuniune.in");
ofstream out("reuniune.out");
struct dreptunghi
{
int x1, y1, x2, y2;
};
dreptunghi d1, d2, d3;
int arietotala, perimetrutotal;
dreptunghi intersectie(dreptunghi a, dreptunghi b)
{
dreptunghi 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);
return c;
}
int arie(dreptunghi a)
{
if (a.x1 > a.x2 || a.y1 > a.y2)
return 0;
return (a.x2-a.x1)*(a.y2-a.y1);
}
int perimetru(dreptunghi a)
{
if (a.x1 > a.x2 || a.y1 > a.y2)
return 0;
return 2*(a.x2-a.x1 + a.y2-a.y1);
}
int main()
{
in >> d1.x1 >> d1.y1 >> d1.x2 >> d1.y2;
in >> d2.x1 >> d2.y1 >> d2.x2 >> d2.y2;
in >> d3.x1 >> d3.y1 >> d3.x2 >> d3.y2;
arietotala = arie(d1) + arie(d2) + arie(d3);
arietotala-= (arie(intersectie(d1, d2)) + arie(intersectie(d2, d3)) + arie(intersectie(d1, d3)));
arietotala+= arie(intersectie(intersectie(d1, d2), d3));
perimetrutotal = perimetru(d1) + perimetru(d2) + perimetru(d3);
perimetrutotal-= (perimetru(intersectie(d1, d2)) + perimetru(intersectie(d2, d3)) + perimetru(intersectie(d1, d3)));
perimetrutotal+= perimetru(intersectie(intersectie(d1, d2), d3));
out << arietotala << " " << perimetrutotal;
return 0;
}