Pagini recente » Cod sursa (job #2305032) | Cod sursa (job #635830) | Cod sursa (job #322141) | Cod sursa (job #1295657) | Cod sursa (job #2665776)
#include<bits/stdc++.h>
#include<math.h>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
#define NMAX 100005
struct Punct
{
long long x,y;
};
struct Dreptunghi
{
Punct x,y;
long long arie()
{
return (y.x-x.x)*(y.y-x.y);
}
long long perimetru()
{
return 2*(y.x-x.x) + 2*(y.y-x.y);
}
};
Dreptunghi a[4];
Dreptunghi intersect(Dreptunghi d1,Dreptunghi d2)
{
Punct x,y;
x.x = max(d1.x.x,d2.x.x);
x.y = max(d1.x.y,d2.x.y);
y.x = min(d1.y.x,d2.y.x);
y.y = min(d1.y.y,d2.y.y);
Dreptunghi sol;
if(x.x > y.x || x.y > y.y)
{
sol.x = {0,0};
sol.y = {0,0};
}
else
{
sol.x = x;
sol.y = y;
}
return sol;
}
int main()
{
for(int i=1;i<=3;i++)
{
fin>>a[i].x.x>>a[i].x.y>>a[i].y.x>>a[i].y.y;
}
long long arie = 0;
long long p = 0;
for(int i=1;i<=3;i++)
{
arie += a[i].arie();
p += a[i].perimetru();
}
for(int i=1;i<=3;i++)
{
for(int j=i+1;j<=3;j++)
{
Dreptunghi aux = intersect(a[i],a[j]);
arie -= aux.arie();
p -= aux.perimetru();
}
}
Dreptunghi aux = intersect(intersect(a[1],a[2]),a[3]);
arie += aux.arie();
p += aux.perimetru();
fout<<arie<<" "<<p;
}