Pagini recente » Cod sursa (job #1342761) | Cod sursa (job #873948) | Cod sursa (job #279409) | Cod sursa (job #86678) | Cod sursa (job #2655679)
#include<bits/stdc++.h>
#define NMAX 100001
#define ll long long
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct drept
{
ll x1, x2, y1, y2, arie, perimetru;
};
drept d1, d2, d3 ,d12, d23, d13, dtot;
void citire(drept &d)
{
f >> d.x1 >> d.y1 >> d.x2 >> d.y2;
}
void calcul(drept &d)
{
if(d.x1 > d.x2 || d.y1 > d.y2)
return;
d.arie = abs(d.x1 - d.x2) * abs(d.y1 - d.y2);
d.perimetru = (abs(d.x1 - d.x2) + abs(d.y1 - d.y2)) * 2;
}
void inters(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);
calcul(c);
}
int main()
{
citire(d1); calcul(d1);
citire(d2); calcul(d2);
citire(d3); calcul(d3);
inters(d1,d2,d12);
inters(d2,d3,d23);
inters(d1,d3,d13);
inters(d12,d13,dtot);
g << d1.arie + d2.arie + d3.arie - d12.arie - d23.arie - d13.arie + dtot.arie << ' ';
g << d1.perimetru + d2.perimetru + d3.perimetru - d12.perimetru - d23.perimetru - d13.perimetru + dtot.perimetru;
f.close();
g.close();
return 0;
}