Pagini recente » Cod sursa (job #2882471) | Cod sursa (job #2978745) | Cod sursa (job #2487585) | Cod sursa (job #928043) | Cod sursa (job #1823745)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("reuniune.in");
ofstream out ("reuniune.out");
struct square {
long long x1;
long long x2;
long long y1;
long long y2;
};
square intersectie(square a ,square b){
square p;
p.x2 = min(a.x2,b.x2);
p.x1 = max(a.x1,b.x1);
p.y2 = min(a.y2,b.y2);
p.y1 = max(a.y1,b.y1);
if(p.x2 - p.x1 < 0)
p.x2 = p.x1 = p.y2 = p.y1 = 0;
if(p.y2 - p.y1 < 0)
p.x2 = p.x1 = p.y2 = p.y1 = 0;
return p;
}
long long spatiu(square p ){
return (p.x2-p.x1)*(p.y2-p.y1);
}
long long perimetru(square p ){
return (p.x2-p.x1)*2+(p.y2-p.y1)*2;
}
int main()
{
square a,b,c;
in>>a.x1>>a.y1>>a.x2>>a.y2;
in>>b.x1>>b.y1>>b.x2>>b.y2;
in>>c.x1>>c.y1>>c.x2>>c.y2;
out<<spatiu(a)+spatiu(b)+spatiu(c)-spatiu(intersectie(a,b))-spatiu(intersectie(a,c))-spatiu(intersectie(c,b))+spatiu(intersectie(a,intersectie(b,c)))<<" ";
out<<perimetru(a)+perimetru(b)+perimetru(c)-perimetru(intersectie(a,b))-perimetru(intersectie(a,c))-perimetru(intersectie(c,b))+perimetru(intersectie(a,intersectie(b,c)));
return 0;
}