Pagini recente » Cod sursa (job #2200399) | infoarena - comunitate informatica, concursuri de programare | Cod sursa (job #858689) | Cod sursa (job #2466634) | Cod sursa (job #1291964)
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("reuniune.in");
ofstream out("reuniune.out");
struct dreptunghi
{
long long x1,x2,y1,y2;
};
long long perimetru(dreptunghi d1)
{
return 2*(d1.x2-d1.x1)+2*(d1.y2-d1.y1);
}
long long arie(dreptunghi d1)
{
return (d1.x2-d1.x1)*(d1.y2-d1.y1);
}
dreptunghi intersectie(dreptunghi d1,dreptunghi d2)
{
dreptunghi inter;
inter.x1=max(d1.x1,d2.x1);
inter.x2=min(d1.x2,d2.x2);
inter.y1=max(d1.y1,d2.y1);
inter.y2=min(d1.y2,d2.y2);
if(inter.x1>inter.x2 || inter.y1>inter.y2)
{
inter.x1=inter.x2=inter.y1=inter.y2=0;
}
return inter;
}
int main()
{
dreptunghi d1,d2,d3;
in>>d1.x1>>d1.y1>>d1.x2>>d1.y2>>d2.x1>>d2.y1>>d2.x2>>d2.y2>>d3.x1>>d3.y1>>d3.x2>>d3.y2;
out<<arie(d1)+arie(d2)+arie(d3)-arie(intersectie(d1,d2))-arie(intersectie(d2,d3))-arie(intersectie(d1,d3))+arie(intersectie(intersectie(d1,d2),d3))<<" ";
out<<perimetru(d1)+perimetru(d2)+perimetru(d3)-perimetru(intersectie(d1,d2))-perimetru(intersectie(d2,d3))-perimetru(intersectie(d1,d3))+perimetru(intersectie(intersectie(d1,d2),d3));
}