Pagini recente » Cod sursa (job #2865506) | Cod sursa (job #3152077) | Cod sursa (job #1467283) | Cod sursa (job #1226885) | Cod sursa (job #1610774)
#include<fstream>
using namespace std;
FILE*in;
ofstream out("reuniune.out");
struct dreptunghi
{
long long int xjos, yjos;
long long int xsus, ysus;
}A, B, C, IN_AB, IN_BC, IN_AC, IN_ABC;
void intersectie(dreptunghi M, dreptunghi N, dreptunghi &P)
{
P.xjos=max(M.xjos, N.xjos);
P.yjos=max(M.yjos, N.yjos);
P.xsus=min(M.xsus, N.xsus);
P.ysus=min(M.ysus, N.ysus);
if ((P.xsus < P.xjos) || (P.ysus < P.yjos))
P.xjos=P.xsus=P.yjos=P.ysus=0;
}
long long int arie(dreptunghi M)
{
return (M.xsus-M.xjos)*(M.ysus-M.yjos);
}
long long int perimetru(dreptunghi M)
{
return 2*(M.xsus-M.xjos)+2*(M.ysus-M.yjos);
}
void read()
{
in=fopen("reuniune.in", "r");
fscanf(in, "%lld%lld%lld%lld", &A.xjos, &A.yjos, &A.xsus, &A.ysus);
fscanf(in, "%lld%lld%lld%lld", &B.xjos, &B.yjos, &B.xsus, &B.ysus);
fscanf(in, "%lld%lld%lld%lld", &C.xjos, &C.yjos, &C.xsus, &C.ysus);
}
void solve()
{
intersectie(A, B, IN_AB);
intersectie(A, C, IN_AC);
intersectie(B, C, IN_BC);
intersectie(IN_AB, C, IN_ABC);
}
void show()
{
out<<arie(A)+arie(B)+arie(C)-arie(IN_AB)-arie(IN_AC)-arie(IN_BC)+arie(IN_ABC)<<" ";
out<<perimetru(A)+perimetru(B)+perimetru(C)-perimetru(IN_AB)-perimetru(IN_AC)-perimetru(IN_BC)+perimetru(IN_ABC);
}
int main()
{
read();
solve();
show();
return 0;
}