Pagini recente » Cod sursa (job #2854958) | Cod sursa (job #1820178) | Cod sursa (job #3124545) | Cod sursa (job #2162756) | Cod sursa (job #800110)
Cod sursa(job #800110)
#include <fstream>
using namespace std;
struct dreptunghi
{
long long x1, y1;
long long x2, y2;
}d1, d2, d3;
long long arie(dreptunghi a)
{
return (a.x2-a.x1)*(a.y2-a.y1);
}
long long per(dreptunghi a)
{
return (a.x2-a.x1)*2+(a.y2-a.y1)*2;
}
dreptunghi reun(dreptunghi a, dreptunghi b)
{
dreptunghi aux;
aux.x1=max(a.x1,b.x1);
aux.y1=max(a.y1,b.y1);
aux.x2=min(a.x2,b.x2);
aux.y2=min(a.y2,b.y2);
if (aux.x1>aux.x2 || aux.y1>aux.y2)
aux.x1=aux.x2=aux.y1=aux.y2=0;
return(aux);
}
int main()
{
ifstream f("reuniune.in");
ofstream g("reuniune.out");
long long a, p;
//Read
f>>d1.x1>>d1.y1>>d1.x2>>d1.y2;
f>>d2.x1>>d2.y1>>d2.x2>>d2.y2;
f>>d3.x1>>d3.y1>>d3.x2>>d3.y2;
//Compute
a = arie(d1)+arie(d2)+arie(d3)-arie(reun(d1,d2))
-arie(reun(d1,d3))-arie(reun(d2,d3))
+arie(reun(reun(d1,d2),d3));
p = per(d1)+per(d2)+per(d3)-per(reun(d1,d2))
-per(reun(d1,d3))-per(reun(d2,d3))
+per(reun(reun(d1,d2),d3));
//Print
g<<a<<" "<<p;
}