Pagini recente » Cod sursa (job #1326752) | Cod sursa (job #2389884) | Cod sursa (job #671380) | Cod sursa (job #1785385) | Cod sursa (job #2435299)
#include <iostream>
#include <fstream>
using namespace std;
struct drept{
int x1, y1, x2, y2;
}d[4];
ifstream f("reuniune.in");
ofstream g("reuniune.out");
long long rez_arie, rez_perimetru;
drept reun(drept a, drept b)
{
drept nou;
nou.x1=max(a.x1,b.x1);
nou.y1=max(a.y1,b.y1);
nou.x2=min(a.x2,b.x2);
nou.y2=min(a.y2,b.y2);
return nou;
}
int main()
{
for (int i=1; i<=3; ++i)
{
f >> d[i].x1 >> d[i].y1 >> d[i].x2 >> d[i].y2;
rez_arie+=(d[i].x2-d[i].x1)*(d[i].y2-d[i].y1);
rez_perimetru+=2*(d[i].x2-d[i].x1)+2*(d[i].y2-d[i].y1);
}
for (int i=1; i<=3; ++i)
{
for (int j=i+1; j<=3; ++j)
{
drept reuniune=reun(d[i],d[j]);
rez_arie-=(reuniune.x2-reuniune.x1)*(reuniune.y2-reuniune.y1);
rez_perimetru-=(2*(reuniune.x2-reuniune.x1)+2*(reuniune.y2-reuniune.y1));
}
}
drept reuniune=reun(d[1],d[2]);
drept alta=reun(reuniune,d[3]);
rez_arie+=(alta.x2-alta.x1)*(alta.y2-alta.y1);
rez_perimetru+=(2*(alta.x2-alta.x1)+2*(alta.y2-alta.y1));
g << rez_arie <<' ' << rez_perimetru;
return 0;
}