Pagini recente » Cod sursa (job #2188451) | Cod sursa (job #1600929) | Cod sursa (job #1069006) | Cod sursa (job #1870111) | Cod sursa (job #998060)
Cod sursa(job #998060)
#include <fstream>
#include <algorithm>
using namespace std;
struct R
{
long long X1, X2, Y1, Y2;
}D[4];
long long A(R A)
{
return (A.X2 - A.X1) * (A.Y2 - A.Y1);
}
long long P(R A)
{
return 2 * (A.X2 - A.X1 + A.Y2 - A.Y1);
}
R I(R A, R B)
{
R C;
C.X1 = max(A.X1, B.X1);
C.X2 = min(A.X2, B.X2);
C.Y1 = max(A.Y1, B.Y1);
C.Y2 = min(A.Y2, B.Y2);
if(C.X1 > C.X2 || C.Y1 > C.Y2) C.X1 = C.X2 = C.Y1 = C.Y2 = 0;
return C;
}
int main()
{
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
for(int i = 1; i <= 3; ++ i)
fin >> D[i].X1 >> D[i].Y1 >> D[i].X2 >> D[i].Y2;
fout << A(D[1]) + A(D[2]) + A(D[3]) - A( I(D[1], D[2]) ) - A( I(D[2], D[3]) ) - A( I(D[1], D[3]) ) + A( I(D[1], I(D[2], D[3])) ) << " ";
fout << P(D[1]) + P(D[2]) + P(D[3]) - P( I(D[1], D[2]) ) - P( I(D[2], D[3]) ) - P( I(D[1], D[3]) ) + P( I(D[1], I(D[2], D[3])) ) << "\n";
return 0;
}