Pagini recente » Cod sursa (job #576160) | Cod sursa (job #372072) | Cod sursa (job #2641411) | Cod sursa (job #2541950) | Cod sursa (job #1970772)
#include <fstream>
using namespace std;
long long int Arie,Perim;
struct dreptunghi {int x;int y;int z;int t;} A,B,C;
long long int arie(dreptunghi X)
{
return 1LL*(X.z-X.x)*(X.t-X.y);
}
long long int perimetru(dreptunghi X)
{
return 1LL*2*(X.z-X.x+X.t-X.y);
}
dreptunghi inters(dreptunghi X,dreptunghi Y)
{
dreptunghi D;
if(X.x>Y.x)
D.x=X.x;
else
D.x=Y.x;
if(X.y>Y.y)
D.y=X.y;
else
D.y=Y.y;
if(X.z<Y.z)
D.z=X.z;
else
D.z=Y.z;
if(X.t<Y.t)
D.t=X.t;
else
D.t=Y.t;
if(D.y>D.t or D.x>D.z)
{
D.x=0;
D.y=0;
D.z=0;
D.t=0;
}//if
return D;
}
int main()
{
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
fin>>A.x>>A.y>>A.z>>A.t;
fin>>B.x>>B.y>>B.z>>B.t;
fin>>C.x>>C.y>>C.z>>C.t;
Arie=arie(A)+arie(B)+arie(C)-arie(inters(A,B))-arie(inters(B,C))-arie(inters(A,C))+arie(inters(C,inters(A,B)));
fout<<Arie<<' ';
Perim=perimetru(A)+perimetru(B)+perimetru(C)-perimetru(inters(A,B))-perimetru(inters(B,C))-perimetru(inters(A,C))+
perimetru(inters(C,inters(A,B)));
fout<<Perim;
fin.close ();
fout.close();
return 0;
}