Pagini recente » Cod sursa (job #250031) | Cod sursa (job #242317) | Cod sursa (job #559418) | Cod sursa (job #2720380) | Cod sursa (job #2386630)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
#define f first
#define s second
struct interval{
long long x1;
long long y1;
long long x2;
long long y2;
};
interval a[3];
int n,m;
long long arie_sol,perimetru_sol;
long long arie(interval d)
{
return (d.y2-d.y1)*(d.x2-d.x1);
}
long long perimetru(interval d)
{
return 2*(d.y2-d.y1+d.x2-d.x1);
}
interval intersectie(interval x,interval y)
{
interval solutie;
solutie.x1=max(x.x1,y.x1);
solutie.y1=max(x.y1,y.y1);
solutie.x2=min(x.x2,y.x2);
solutie.y2=min(x.y2,y.y2);
if (solutie.x1>solutie.x2 || solutie.y1>solutie.y2)
solutie.x1=solutie.x2=solutie.y1=solutie.y2=0;
return solutie;
}
int main()
{
for (int i=0;i<3;i++)
{
fin>>a[i].x1>>a[i].y1>>a[i].x2>>a[i].y2;
}
arie_sol=arie(a[0])+arie(a[1])+arie(a[2])-
arie(intersectie(a[0],a[1]))-
arie(intersectie(a[0],a[2]))-
arie(intersectie(a[1],a[2]))+
arie(intersectie(intersectie(a[0],a[1]),a[2]));
perimetru_sol=perimetru(a[0])+perimetru(a[1])+perimetru(a[2])-
perimetru(intersectie(a[0],a[1]))-
perimetru(intersectie(a[0],a[2]))-
perimetru(intersectie(a[1],a[2]))+
perimetru(intersectie(intersectie(a[0],a[1]),a[2]));
fout<<arie_sol<<" "<<perimetru_sol<<'\n';
return 0;
}