Pagini recente » Cod sursa (job #962470) | Cod sursa (job #1749020) | Cod sursa (job #1940461) | Cod sursa (job #1160977) | Cod sursa (job #913714)
Cod sursa(job #913714)
#include<fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct dreptunghi {long long x1, x2, y1, y2;} d[4];
long long a,p;
long long arie(dreptunghi A)
{return (A.x2 - A.x1) * (A.y2 - A.y1);}
long long per(dreptunghi A)
{return 2 * (A.x2 - A.x1 + A.y2 - A.y1);}
dreptunghi intr (dreptunghi A1, dreptunghi A2)
{dreptunghi intr;
intr.x1 = max(A1.x1 , A2.x1);
intr.y1 = max(A1.y1 , A2.y1);
intr.x2 = min(A1.x2 , A2.x2);
intr.y2 = min(A1.y2 , A2.y2);
if (intr.x1 > intr.x2 || intr.y1 > intr.y2)
intr.x1 = intr.x2 = intr.y1 = intr.y2 = 0;
return(intr);
}
int main()
{for (int i = 1; i <= 3; i++)
f>> d[i].x1 >> d[i].y1 >> d[i].x2 >> d[i].y2;
a = arie(d[1]) + arie(d[2]) + arie(d[3]) -
arie(intr(d[1], d[2])) - arie(intr(d[1], d[3])) - arie(intr(d[2] , d[3])) +
arie(intr(intr(d[1] , d[2]) , d[3]));
p = per(d[1]) + per(d[2]) + per(d[3]) -
per(intr(d[1], d[2])) - per(intr(d[1], d[3])) - per(intr(d[2],d[3])) +
per(intr(intr(d[1], d[2]), d[3]));
g<<a<<" "<<p;
g.close();
return 0;
}