Pagini recente » Cod sursa (job #592565) | Cod sursa (job #1121832) | Cod sursa (job #2754717) | Cod sursa (job #743012) | Cod sursa (job #1439184)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
struct Drept
{
long long x1,y1,x2,y2;
};
Drept d1,d2,d3,a,b,c,d;
void Interior(Drept A,Drept B,Drept &C)
{
C.x1=max(A.x1,B.x1);
C.y1=max(A.y1,B.y1);
C.x2=min(A.x2,B.x2);
C.y2=min(A.y2,B.y2);
if (C.x1>C.x2 || C.y1>C.y2)
{
C.x1=0;C.x2=0;C.y1=0;C.y2=0;
}
}
long long Aria(Drept A)
{
return ((A.x2-A.x1)*(A.y2-A.y1));
}
long long Perimetru(Drept A)
{
return (2*(A.x2-A.x1)+2*(A.y2-A.y1));
}
int main()
{
fin>>d1.x1>>d1.y1>>d1.x2>>d1.y2;
fin>>d2.x1>>d2.y1>>d2.x2>>d2.y2;
fin>>d3.x1>>d3.y1>>d3.x2>>d3.y2;
Interior(d1,d2,a);
Interior(d1,d3,b);
Interior(d2,d3,c);
Interior(a,d3,d);
fout<<Aria(d1)+Aria(d2)+Aria(d3)-Aria(a)-Aria(b)-Aria(c)+Aria(d)<<' ';
fout<<Perimetru(d1)+Perimetru(d2)+Perimetru(d3)-Perimetru(a)-Perimetru(b)-Perimetru(c)+Perimetru(d)<<' ';
}