Pagini recente » Cod sursa (job #2379799) | Cod sursa (job #147142) | Cod sursa (job #1549763) | Cod sursa (job #488407) | Cod sursa (job #563612)
Cod sursa(job #563612)
#include<fstream>
#define max(a, b) a>b?a:b
#define min(a, b) a<b?a:b
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct dreptunghi
{
long long x0, y0, x1, y1;
}
void read(dreptunghi X)
{
fin >> X.x0 >> X.x1 >> X.y0 >> X.y1;
}
long long S(dreptunghi X)
{
return (max(X.x0, X.x1) - min(X.x0, X.x1))*(max(X.y0, X.y1) - min(X.y0, X.y1));
}
long long P(dreptunghi X)
{
return 2*(max(X.x0, X.x1) - min(X.x0, X.x1)) + 2*(max(X.y0, X.y1) - min(X.y0, X.y1));
}
int main()
{
dreptunghi A, B, C, AB, BC, CA, ABC;
read(A);
read(B);
read(C);
AB.x0 = max(A.x0, B.x0);
AB.x1 = max(A.x1, B.x1);
AB.y0 = max(A.y0, B.y0);
AB.y1 = max(A.y1, B.y1);
BC.x0 = max(C.x0, B.x0);
BC.x1 = max(C.x1, B.x1);
BC.y0 = max(C.y0, B.y0);
BC.y1 = max(C.y1, B.y1);
CA.x0 = max(A.x0, C.x0);
CA.x1 = max(A.x1, C.x1);
CA.y0 = max(A.y0, C.y0);
CA.y1 = max(A.y1, C.y1);
ABC.x0 = max(CA.x0, B.x0);
ABC.x1 = max(CA.x1, B.x1);
ABC.y0 = max(CA.y0, B.y0);
ABC.y1 = max(CA.y1, B.y1);
long long Arie, Perimetru;
Arie = S(A) + S(B) + S(C) - S(AB) - S(BC) - S(CA) + S(ABC);
Perimetru = P(A) + P(B) + P(C) - P(AB) - P(BC) - P(CA) + P(ABC);
fout << Arie << " " << Perimetru << "\n";
return 0;
}