Pagini recente » Cod sursa (job #1345749) | Cod sursa (job #1257175) | Cod sursa (job #1301174) | Cod sursa (job #2502182) | Cod sursa (job #1750407)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct drept{int x0;int x1;int y0;int y1;}v[4];
long long int A,P;
inline long long int arie(int i)
{
return 1LL*(v[i].x1-v[i].x0)*(v[i].y1-v[i].y0);
}
inline long long int perimetru(int i)
{
return 2LL*(v[i].x1-v[i].x0+v[i].y1-v[i].y0);
}
int intersectie(int i,int j)
{
v[0].x0=max(v[i].x0,v[j].x0),v[0].x1=min(v[i].x1,v[j].x1);
if(v[0].x0>=v[0].x1) return 0;
v[0].y0=max(v[i].y0,v[j].y0),v[0].y1=min(v[i].y1,v[j].y1);
if(v[0].y0>=v[0].y1) return 0;
return 1;
}
int main()
{
for(int i=1;i<=3;i++)
{
f>>v[i].x0>>v[i].y0>>v[i].x1>>v[i].y1;
A+=arie(i);
P+=perimetru(i);
}
A-=intersectie(1,2)*arie(0);
A-=intersectie(1,3)*arie(0);
A-=intersectie(2,3)*arie(0);
A+=intersectie(0,1)*arie(0);
P-=intersectie(1,2)*perimetru(0);
P-=intersectie(1,3)*perimetru(0);
P-=intersectie(2,3)*perimetru(0);
P+=intersectie(0,1)*perimetru(0);
g<<A<<' '<<P;
return 0;
}