Pagini recente » Cod sursa (job #2007602) | Cod sursa (job #1066664) | Istoria paginii runda/lasm09.03.2017 | Cod sursa (job #2095359) | Cod sursa (job #498549)
Cod sursa(job #498549)
#include <fstream>
#include <iostream>
using namespace std;
typedef long long int lli;
struct R{lli x1,x2,y1,y2;};
istream& operator>>(istream&i,R&r)
{i>>r.x1>>r.y1>>r.x2>>r.y2;return i;}
void i(R&r1,R&r2,R&r3)
{ R r;
r.x1=(r2.x1<r1.x1)?r1.x1:r2.x1;
r.x2=(r2.x2<r1.x2)?r2.x2:r1.x2;
r.y1=(r2.y1<r1.y1)?r1.y1:r2.y1;
r.y2=(r2.y2<r1.y2)?r2.y2:r1.y2;
r.x1=(r.x1<r.x2)?r.x1:r.x2;
r.y1=(r.y1<r.y2)?r.y1:r.y2;
r3=r;
}
lli a(R&r){return (r.x2-r.x1)*(r.y2-r.y1);}
lli p(R&r){return 2*(r.x2-r.x1+r.y2-r.y1);}
int main()
{ ifstream is("reuniune.in");
ofstream os("reuniune.out");
R r1,r2,r3,r12,r23,r31,r123;is>>r1>>r2>>r3;
i(r1,r2,r12);i(r2,r3,r23);i(r3,r1,r31);i(r12,r3,r123);
lli s=a(r1)+a(r2)+a(r3)-a(r12)-a(r23)-a(r31)+a(r123);
lli q=p(r1)+p(r2)+p(r3)-p(r12)-p(r23)-p(r31)+p(r123);
os<<s<<' '<<q<<endl;
return 0;
}