Pagini recente » Cod sursa (job #2415359) | Cod sursa (job #755866) | Cod sursa (job #471871) | Cod sursa (job #3244979) | Cod sursa (job #3217724)
#include <fstream>
using namespace std;
ifstream cin("reuniune.in");
ofstream cout("reuniune.out");
struct coord {
int x1, y1, x2, y2;
} a, b, c, ab, bc, ca, abc;
long long arie(coord& dr) {
return (long long)(dr.x2-dr.x1)*(dr.y2-dr.y1);
}
long long perimetru(coord& dr) {
return (long long)(2*((dr.x2-dr.x1)+(dr.y2-dr.y1)));
}
coord inter(coord& x, coord& y) {
if(max(x.x1, y.x1)>min(x.x2, y.x2) || max(x.y1, y.y1)>min(x.y2, y.y2))
return {0, 0, 0, 0};
return {max(x.x1, y.x1), max(x.y1, y.y1), min(x.x2, y.x2), min(x.y2, y.y2)};
}
int main() {
cin>>a.x1>>a.y1>>a.x2>>a.y2;
cin>>b.x1>>b.y1>>b.x2>>b.y2;
cin>>c.x1>>c.y1>>c.x2>>c.y2;
ab=inter(a, b);
bc=inter(b, c);
ca=inter(c, a);
abc=inter(ab, c);
cout<<arie(a)+arie(b)+arie(c)-arie(ab)-arie(bc)-arie(ca)+arie(abc)<<" ";
cout<<perimetru(a)+perimetru(b)+perimetru(c)-perimetru(ab)-perimetru(bc)-perimetru(ca)+perimetru(abc);
}